{"code_snippets":[{"id":"333405ee9924108619cd8443f735d754","path":"internal/router/router.go","line_range":"16-52","gmt_create":"2026-05-27T18:35:29.892946+08:00","gmt_modified":"2026-05-27T18:35:29.892946+08:00"},{"id":"6eda76d6eb6015250ec186fdafd0b3c9","path":"cmd/server/main.go","line_range":"59-70","gmt_create":"2026-05-27T18:35:29.8934805+08:00","gmt_modified":"2026-05-27T18:35:29.8934805+08:00"},{"id":"553e943cfb2f6b7752122999084a80a5","path":"internal/cache/brand_cache.go","line_range":"18-44","gmt_create":"2026-05-27T18:35:29.8940514+08:00","gmt_modified":"2026-05-27T18:35:29.8940514+08:00"},{"id":"d7c4ecf9c38df06865431d0dcd796162","path":"internal/cache/model_cache.go","line_range":"19-69","gmt_create":"2026-05-27T18:35:29.8940514+08:00","gmt_modified":"2026-05-27T18:35:29.8940514+08:00"},{"id":"5ec84f3864f3fa2c3ab1d97fe69d5529","path":"internal/repository/brand.go","line_range":"14-52","gmt_create":"2026-05-27T18:35:29.8940514+08:00","gmt_modified":"2026-05-27T18:35:29.8940514+08:00"},{"id":"468dd8105671ed478ff86ca97c0609ba","path":"internal/repository/model.go","line_range":"14-79","gmt_create":"2026-05-27T18:35:29.8946006+08:00","gmt_modified":"2026-05-27T18:35:29.8946006+08:00"},{"id":"a0b3e000a5b789bf08d2d996fc17d8df","path":"cmd/server/main.go","line_range":"25-101","gmt_create":"2026-05-27T18:35:29.895175+08:00","gmt_modified":"2026-05-27T18:35:29.895175+08:00"},{"id":"111557d31227afead72d0f01becea3bc","path":"README.md","line_range":"19-123","gmt_create":"2026-05-27T18:35:29.895175+08:00","gmt_modified":"2026-05-27T18:35:29.895175+08:00"},{"id":"5db111a430cac488cabeb543494fb917","path":"internal/response/response.go","line_range":"15-36","gmt_create":"2026-05-27T18:35:29.895702+08:00","gmt_modified":"2026-05-27T18:35:29.895702+08:00"},{"id":"891c848d9153926513b9005f2d61382e","path":"internal/middleware/logger.go","line_range":"10-44","gmt_create":"2026-05-27T18:35:29.8962367+08:00","gmt_modified":"2026-05-27T18:35:29.8962367+08:00"},{"id":"8a6a9ea04bb9b0de8fd0195ca491b154","path":"internal/middleware/request_id.go","line_range":"20-29","gmt_create":"2026-05-27T18:35:29.8962367+08:00","gmt_modified":"2026-05-27T18:35:29.8962367+08:00"},{"id":"99d2500a6a0922c50675ed247c6777e5","path":"internal/middleware/cors.go","line_range":"7-19","gmt_create":"2026-05-27T18:35:29.8962367+08:00","gmt_modified":"2026-05-27T18:35:29.8962367+08:00"},{"id":"c86c8f1c951956c0397e6c938ccc641c","path":"internal/router/router.go","line_range":"23-36","gmt_create":"2026-05-27T18:35:29.897306+08:00","gmt_modified":"2026-05-27T18:35:29.897306+08:00"},{"id":"99701e03d9c9476a15f742b82e5adfa5","path":"internal/cache/brand_cache.go","line_range":"13-44","gmt_create":"2026-05-27T18:35:29.8978401+08:00","gmt_modified":"2026-05-27T18:35:29.8978401+08:00"},{"id":"a072f4ebff3b6cc9eaf8025737ca42d3","path":"internal/cache/model_cache.go","line_range":"13-69","gmt_create":"2026-05-27T18:35:29.8978401+08:00","gmt_modified":"2026-05-27T18:35:29.8978401+08:00"},{"id":"d4f94a6e4a0cd46ebc0c5f03e96c6232","path":"internal/router/router.go","line_range":"38-49","gmt_create":"2026-05-27T18:35:29.8983769+08:00","gmt_modified":"2026-05-27T18:35:29.8983769+08:00"},{"id":"0a2840d641ba5dccfff95a35d7317004","path":"README.md","line_range":"83-110","gmt_create":"2026-05-27T18:35:29.8983769+08:00","gmt_modified":"2026-05-27T18:35:29.8983769+08:00"},{"id":"491bd71f42db0fd5bf1d4851b9c4aaa9","path":"internal/handler/health.go","line_range":"14-18","gmt_create":"2026-05-27T18:35:29.8994388+08:00","gmt_modified":"2026-05-27T18:35:29.8994388+08:00"},{"id":"fce5662f14aa6386a5036b5241e00b1c","path":"internal/response/response.go","line_range":"15-21","gmt_create":"2026-05-27T18:35:29.8999721+08:00","gmt_modified":"2026-05-27T18:35:29.8999721+08:00"},{"id":"7e3954c3e70a9252de9cfdec52ed93c8","path":"internal/handler/brand.go","line_range":"25-48","gmt_create":"2026-05-27T18:35:29.8999721+08:00","gmt_modified":"2026-05-27T18:35:29.8999721+08:00"},{"id":"79304ed9558f17f9ecb0dc7d24add547","path":"pkg/encode/base64.go","line_range":"44-51","gmt_create":"2026-05-27T18:35:29.9005171+08:00","gmt_modified":"2026-05-27T18:35:29.9005171+08:00"},{"id":"a6d16b8965ed7f207f19f8f915ad53a4","path":"internal/handler/model.go","line_range":"25-49","gmt_create":"2026-05-27T18:35:29.9005171+08:00","gmt_modified":"2026-05-27T18:35:29.9005171+08:00"},{"id":"fce0c17d6c03e511c3afeaee662ad34f","path":"internal/handler/model_list.go","line_range":"26-56","gmt_create":"2026-05-27T18:35:29.9010627+08:00","gmt_modified":"2026-05-27T18:35:29.9010627+08:00"},{"id":"d4bd0610a0ad3d8fd8d33ac5f4aa83b5","path":"internal/handler/device.go","line_range":"26-84","gmt_create":"2026-05-27T18:35:29.901596+08:00","gmt_modified":"2026-05-27T18:35:29.901596+08:00"},{"id":"1be2a5a025cb64eeb20d5e54d293203f","path":"internal/middleware/logger.go","line_range":"33-43","gmt_create":"2026-05-27T18:35:29.9037303+08:00","gmt_modified":"2026-05-27T18:35:29.9037303+08:00"},{"id":"5f4eb9799d6c811ddcc430f51e299cf6","path":"internal/middleware/request_id.go","line_range":"22-27","gmt_create":"2026-05-27T18:35:29.9037303+08:00","gmt_modified":"2026-05-27T18:35:29.9037303+08:00"},{"id":"be85f7cf4e9dd0c2460475b95efb085d","path":"internal/middleware/cors.go","line_range":"9-12","gmt_create":"2026-05-27T18:35:29.9042675+08:00","gmt_modified":"2026-05-27T18:35:29.9042675+08:00"},{"id":"730d8469648c9599ccbc091a9496d2a1","path":"internal/response/response.go","line_range":"23-36","gmt_create":"2026-05-27T18:35:29.9042675+08:00","gmt_modified":"2026-05-27T18:35:29.9042675+08:00"},{"id":"d48bcd5374602483c104c7d50c7224fb","path":"internal/router/router.go","line_range":"18-21","gmt_create":"2026-05-27T18:35:29.9062656+08:00","gmt_modified":"2026-05-27T18:35:29.9062656+08:00"},{"id":"798bc9e7f1a3902993b3aa9acba73022","path":"internal/middleware/logger.go","line_range":"16","gmt_create":"2026-05-27T18:35:29.9067927+08:00","gmt_modified":"2026-05-27T18:35:29.9067927+08:00"},{"id":"ed43fe99536e371ce908f167a68124f8","path":"internal/middleware/request_id.go","line_range":"28","gmt_create":"2026-05-27T18:35:29.9073213+08:00","gmt_modified":"2026-05-27T18:35:29.9073213+08:00"},{"id":"08c02a0d77d871b6c9650cbfcdf84c94","path":"internal/middleware/cors.go","line_range":"18","gmt_create":"2026-05-27T18:35:29.9073213+08:00","gmt_modified":"2026-05-27T18:35:29.9073213+08:00"},{"id":"e88b0ee062bd02dd7acdf8e2e945b270","path":"cmd/server/main.go","line_range":"103-130","gmt_create":"2026-05-27T18:35:29.9078603+08:00","gmt_modified":"2026-05-27T18:35:29.9078603+08:00"},{"id":"64381887b12f6927d8b0481a55c2dcf1","path":"internal/router/router.go","line_range":"22-25","gmt_create":"2026-05-27T18:35:41.7314752+08:00","gmt_modified":"2026-05-27T18:35:41.7314752+08:00"},{"id":"1503a99bb2f2ab96e4a3a830d8834e45","path":"internal/handler/brand.go","line_range":"19-24","gmt_create":"2026-05-27T18:35:41.7314752+08:00","gmt_modified":"2026-05-27T18:35:41.7314752+08:00"},{"id":"f74cdc773e62a1a9f5a4bf940b5961e3","path":"internal/handler/model.go","line_range":"19-24","gmt_create":"2026-05-27T18:35:41.7320175+08:00","gmt_modified":"2026-05-27T18:35:41.7320175+08:00"},{"id":"8b0db394a538b6652de2e6634277ad0f","path":"internal/repository/brand.go","line_range":"14-21","gmt_create":"2026-05-27T18:35:41.7320175+08:00","gmt_modified":"2026-05-27T18:35:41.7320175+08:00"},{"id":"03f26c7c55e18e6266ea8e543a032229","path":"internal/repository/model.go","line_range":"14-21","gmt_create":"2026-05-27T18:35:41.7325394+08:00","gmt_modified":"2026-05-27T18:35:41.7325394+08:00"},{"id":"8fab617bba600779abac7805723180a0","path":"internal/cache/brand_cache.go","line_range":"18-24","gmt_create":"2026-05-27T18:35:41.7325394+08:00","gmt_modified":"2026-05-27T18:35:41.7325394+08:00"},{"id":"006d91f2f5f75fd7cd586165c200ba98","path":"internal/cache/model_cache.go","line_range":"19-25","gmt_create":"2026-05-27T18:35:41.7325394+08:00","gmt_modified":"2026-05-27T18:35:41.7325394+08:00"},{"id":"509525e0463c03c509709a6bd1765d4f","path":"internal/cache/redis.go","line_range":"10-16","gmt_create":"2026-05-27T18:35:41.7330685+08:00","gmt_modified":"2026-05-27T18:35:41.7330685+08:00"},{"id":"57b8aed283762226a00482b42a8acf5b","path":"internal/database/mysql.go","line_range":"14-46","gmt_create":"2026-05-27T18:35:41.7330685+08:00","gmt_modified":"2026-05-27T18:35:41.7330685+08:00"},{"id":"4ab082407b96e18f67a65d07eb4a331d","path":"internal/config/database.go","line_range":"17-40","gmt_create":"2026-05-27T18:35:41.7330685+08:00","gmt_modified":"2026-05-27T18:35:41.7330685+08:00"},{"id":"fd2a12d243b52512003ae067f53a7548","path":"internal/config/redis.go","line_range":"9-57","gmt_create":"2026-05-27T18:35:41.7335924+08:00","gmt_modified":"2026-05-27T18:35:41.7335924+08:00"},{"id":"61d69bf4d3c8c548eecfd677394486d6","path":"internal/config/config.go","line_range":"18-52","gmt_create":"2026-05-27T18:35:41.7335924+08:00","gmt_modified":"2026-05-27T18:35:41.7335924+08:00"},{"id":"e87c932ace50951cb91aa66877ad6f81","path":"sql/model.sql","line_range":"24-35","gmt_create":"2026-05-27T18:35:41.7341274+08:00","gmt_modified":"2026-05-27T18:35:41.7341274+08:00"},{"id":"90226e287e9b66f5a36ba2316d7a7cd7","path":"internal/router/router.go","line_range":"14-41","gmt_create":"2026-05-27T18:35:41.7341274+08:00","gmt_modified":"2026-05-27T18:35:41.7341274+08:00"},{"id":"9918f39149aaf1f5c3ec03275d6e3673","path":"internal/repository/brand.go","line_range":"23-52","gmt_create":"2026-05-27T18:35:41.7373036+08:00","gmt_modified":"2026-05-27T18:35:41.7373036+08:00"},{"id":"a19fb2ac137e43d92d2ef93e8d79f0a7","path":"internal/repository/model.go","line_range":"23-79","gmt_create":"2026-05-27T18:35:41.7378291+08:00","gmt_modified":"2026-05-27T18:35:41.7378291+08:00"},{"id":"72322f320f907b6eec72e885e30759eb","path":"internal/cache/brand_cache.go","line_range":"26-44","gmt_create":"2026-05-27T18:35:41.7385763+08:00","gmt_modified":"2026-05-27T18:35:41.7385763+08:00"},{"id":"d0f658c42abae9b6dc0baaa8fc7d0694","path":"internal/cache/model_cache.go","line_range":"31-69","gmt_create":"2026-05-27T18:35:41.7385763+08:00","gmt_modified":"2026-05-27T18:35:41.7385763+08:00"},{"id":"a952e5d5b625754a2e9249983bb8abaa","path":"internal/config/database.go","line_range":"17-72","gmt_create":"2026-05-27T18:35:41.7391229+08:00","gmt_modified":"2026-05-27T18:35:41.7391229+08:00"},{"id":"f7af3a1998c24f922aa650a69b252734","path":"internal/config/redis.go","line_range":"16-57","gmt_create":"2026-05-27T18:35:41.739651+08:00","gmt_modified":"2026-05-27T18:35:41.739651+08:00"},{"id":"c7bf654a5faf00b02953d2e56747a669","path":"internal/database/mysql.go","line_range":"28-43","gmt_create":"2026-05-27T18:35:41.7417727+08:00","gmt_modified":"2026-05-27T18:35:41.7417727+08:00"},{"id":"1d3714bd55d5d3f773f1ab7fdb8c9b53","path":"internal/model/brand.go","line_range":"3-6","gmt_create":"2026-05-27T18:35:41.7422949+08:00","gmt_modified":"2026-05-27T18:35:41.7422949+08:00"},{"id":"8d92ac14c6257462a15eb6990dd44596","path":"internal/model/model.go","line_range":"5-14","gmt_create":"2026-05-27T18:35:41.7439044+08:00","gmt_modified":"2026-05-27T18:35:41.7439044+08:00"},{"id":"8b134235408cf40b9d6351d54591b3c4","path":"sql/model.sql","line_range":"34","gmt_create":"2026-05-27T18:35:41.7449566+08:00","gmt_modified":"2026-05-27T18:35:41.7449566+08:00"},{"id":"62d02336da9111eec3c5696aabf71927","path":"internal/cache/brand_cache.go","line_range":"13-16","gmt_create":"2026-05-27T18:35:41.746537+08:00","gmt_modified":"2026-05-27T18:35:41.746537+08:00"},{"id":"a60ecb63d9ab3bda0c5042f26916def3","path":"internal/cache/model_cache.go","line_range":"13-16","gmt_create":"2026-05-27T18:35:41.7475474+08:00","gmt_modified":"2026-05-27T18:35:41.7475474+08:00"},{"id":"5859dc43ab95b589fc2cada49ab59a86","path":"go.mod","line_range":"5-11","gmt_create":"2026-05-27T18:35:41.7475474+08:00","gmt_modified":"2026-05-27T18:35:41.7475474+08:00"},{"id":"dcc3acd0529002f62657a37922318e37","path":"cmd/server/main.go","line_range":"25-69","gmt_create":"2026-05-27T18:35:41.7475474+08:00","gmt_modified":"2026-05-27T18:35:41.7475474+08:00"},{"id":"99ead368ce42f1081e05c800c65b176f","path":"internal/database/mysql.go","line_range":"33-43","gmt_create":"2026-05-27T18:35:41.7539267+08:00","gmt_modified":"2026-05-27T18:35:41.7539267+08:00"},{"id":"a5fb1691af5646ea8b4306ae97288e36","path":"internal/handler/health.go","line_range":"10","gmt_create":"2026-05-27T18:35:49.7681131+08:00","gmt_modified":"2026-05-27T18:35:49.7681131+08:00"},{"id":"de87fa33e6add38c027478dd3d0cebda","path":"internal/handler/brand.go","line_range":"18","gmt_create":"2026-05-27T18:35:49.7681131+08:00","gmt_modified":"2026-05-27T18:35:49.7681131+08:00"},{"id":"09427d743a4be750f874418ab3e8504d","path":"internal/handler/model.go","line_range":"18","gmt_create":"2026-05-27T18:35:49.76864+08:00","gmt_modified":"2026-05-27T18:35:49.76864+08:00"},{"id":"9ebb4688793526b520ec263ebf651be7","path":"internal/handler/model_list.go","line_range":"19","gmt_create":"2026-05-27T18:35:49.76864+08:00","gmt_modified":"2026-05-27T18:35:49.76864+08:00"},{"id":"5e813130e7885527f77be92dbbaee9b6","path":"internal/handler/device.go","line_range":"19","gmt_create":"2026-05-27T18:35:49.769172+08:00","gmt_modified":"2026-05-27T18:35:49.769172+08:00"},{"id":"1992aa29a2869c31fe69ac701541c6ff","path":"internal/handler/health.go","line_range":"8-19","gmt_create":"2026-05-27T18:35:49.7696957+08:00","gmt_modified":"2026-05-27T18:35:49.7696957+08:00"},{"id":"692a2c6d49d4eb62f58600908dff9f60","path":"internal/handler/brand.go","line_range":"13-23","gmt_create":"2026-05-27T18:35:49.7696957+08:00","gmt_modified":"2026-05-27T18:35:49.7696957+08:00"},{"id":"c9df5e7b8533af65ce97cf085b6589a9","path":"internal/handler/model.go","line_range":"13-23","gmt_create":"2026-05-27T18:35:49.7702757+08:00","gmt_modified":"2026-05-27T18:35:49.7702757+08:00"},{"id":"d2fd0586bf019047d2adbcdf90e09224","path":"internal/handler/model_list.go","line_range":"14-24","gmt_create":"2026-05-27T18:35:49.7702757+08:00","gmt_modified":"2026-05-27T18:35:49.7702757+08:00"},{"id":"bf1f0d1dece713e866e4a46be7784473","path":"internal/handler/device.go","line_range":"14-24","gmt_create":"2026-05-27T18:35:49.7708+08:00","gmt_modified":"2026-05-27T18:35:49.7708+08:00"},{"id":"c600af69dac497c7cf059a4bb2f033fc","path":"internal/router/router.go","line_range":"32-36","gmt_create":"2026-05-27T18:35:49.7708+08:00","gmt_modified":"2026-05-27T18:35:49.7708+08:00"},{"id":"bc6f53b403231c0f908654d3fea2102a","path":"internal/handler/brand.go","line_range":"29","gmt_create":"2026-05-27T18:35:49.7708+08:00","gmt_modified":"2026-05-27T18:35:49.7708+08:00"},{"id":"7b39881baafeaea08adce31120b7c1e1","path":"internal/handler/model.go","line_range":"30","gmt_create":"2026-05-27T18:35:49.7713218+08:00","gmt_modified":"2026-05-27T18:35:49.7713218+08:00"},{"id":"dbe385204072d26c84bf169842961690","path":"internal/handler/model_list.go","line_range":"37","gmt_create":"2026-05-27T18:35:49.7713218+08:00","gmt_modified":"2026-05-27T18:35:49.7713218+08:00"},{"id":"2a723ed48cd9855068a04da6a33cb5e4","path":"internal/handler/device.go","line_range":"71","gmt_create":"2026-05-27T18:35:49.7718468+08:00","gmt_modified":"2026-05-27T18:35:49.7718468+08:00"},{"id":"d72b0eafdb65d1d946060cf944359251","path":"internal/search/meilisearch.go","line_range":"22-45","gmt_create":"2026-05-27T18:35:49.7723711+08:00","gmt_modified":"2026-05-27T18:35:49.7723711+08:00"},{"id":"1eb8f107de13e2ad7eaed3bd6cf20a3a","path":"internal/router/router.go","line_range":"40","gmt_create":"2026-05-27T18:35:49.7728957+08:00","gmt_modified":"2026-05-27T18:35:49.7728957+08:00"},{"id":"72195f4e7a76b584cbdfbaba23db2a1a","path":"internal/model/brand.go","line_range":"3-7","gmt_create":"2026-05-27T18:35:49.7739534+08:00","gmt_modified":"2026-05-27T18:35:49.7739534+08:00"},{"id":"3e3a148f4095f6d36c64b1cfb3d1702a","path":"internal/handler/brand.go","line_range":"13-48","gmt_create":"2026-05-27T18:35:49.7739534+08:00","gmt_modified":"2026-05-27T18:35:49.7739534+08:00"},{"id":"3c27d9274287839faa5269c34b98b6a9","path":"internal/model/model.go","line_range":"5-15","gmt_create":"2026-05-27T18:35:49.7755123+08:00","gmt_modified":"2026-05-27T18:35:49.7755123+08:00"},{"id":"e0ca219542426b9141a89063f7052b0c","path":"internal/handler/model.go","line_range":"13-49","gmt_create":"2026-05-27T18:35:49.7755123+08:00","gmt_modified":"2026-05-27T18:35:49.7755123+08:00"},{"id":"270fee7aef8f38c42409050388865f6d","path":"pkg/encode/base64.go","line_range":"35-51","gmt_create":"2026-05-27T18:35:49.7765552+08:00","gmt_modified":"2026-05-27T18:35:49.7765552+08:00"},{"id":"8cf065ea198e4e0d88af1863fcd6ac11","path":"internal/handler/model_list.go","line_range":"14-57","gmt_create":"2026-05-27T18:35:49.7770826+08:00","gmt_modified":"2026-05-27T18:35:49.7770826+08:00"},{"id":"b62090b5a8fe0cd95b332a46bb8eac3c","path":"internal/handler/device.go","line_range":"14-85","gmt_create":"2026-05-27T18:35:49.7775979+08:00","gmt_modified":"2026-05-27T18:35:49.7775979+08:00"},{"id":"3f830fae511ccf076a0f04192c9b4cbe","path":"cmd/server/main.go","line_range":"53-69","gmt_create":"2026-05-27T18:35:49.7775979+08:00","gmt_modified":"2026-05-27T18:35:49.7775979+08:00"},{"id":"d0f6f695e8187267487ad6b6fb8559b0","path":"internal/router/router.go","line_range":"16-36","gmt_create":"2026-05-27T18:35:49.7781224+08:00","gmt_modified":"2026-05-27T18:35:49.7781224+08:00"},{"id":"1b6991f54b135de9969d4b357dcce8e4","path":"cmd/server/main.go","line_range":"67-70","gmt_create":"2026-05-27T18:35:49.7791807+08:00","gmt_modified":"2026-05-27T18:35:49.7791807+08:00"},{"id":"86ac1fc7361002fc5d2c9f7b9b1ea754","path":"internal/router/router.go","line_range":"27-36","gmt_create":"2026-05-27T18:35:49.7797069+08:00","gmt_modified":"2026-05-27T18:35:49.7797069+08:00"},{"id":"bdfbf7d6f851540dee549606f7aca9d4","path":"internal/repository/brand.go","line_range":"19","gmt_create":"2026-05-27T18:35:49.7808022+08:00","gmt_modified":"2026-05-27T18:35:49.7808022+08:00"},{"id":"ba4653c42534e9835fb3db39fbfd5c06","path":"internal/repository/model.go","line_range":"19","gmt_create":"2026-05-27T18:35:49.7808022+08:00","gmt_modified":"2026-05-27T18:35:49.7808022+08:00"},{"id":"e5c6898e570c67346c0858cfeaa98fae","path":"internal/search/meilisearch.go","line_range":"17","gmt_create":"2026-05-27T18:35:49.7808022+08:00","gmt_modified":"2026-05-27T18:35:49.7808022+08:00"},{"id":"90b60f9dc283b0c2610ad113bc211315","path":"pkg/encode/base64.go","line_range":"8","gmt_create":"2026-05-27T18:35:49.7813263+08:00","gmt_modified":"2026-05-27T18:35:49.7813263+08:00"},{"id":"85820118c846a111e112dc705c071116","path":"internal/response/response.go","line_range":"9","gmt_create":"2026-05-27T18:35:49.7813263+08:00","gmt_modified":"2026-05-27T18:35:49.7813263+08:00"},{"id":"1041284bd46edf16a19f024c113d10b4","path":"internal/handler/brand.go","line_range":"30-34","gmt_create":"2026-05-27T18:35:49.7826173+08:00","gmt_modified":"2026-05-27T18:35:49.7826173+08:00"},{"id":"84be9fdffe58ef8cd5e77e0d3c37313b","path":"internal/handler/model.go","line_range":"31-35","gmt_create":"2026-05-27T18:35:49.7826173+08:00","gmt_modified":"2026-05-27T18:35:49.7826173+08:00"},{"id":"f034e5c72872862a675dd11e32404854","path":"internal/handler/model_list.go","line_range":"38-42","gmt_create":"2026-05-27T18:35:49.7831513+08:00","gmt_modified":"2026-05-27T18:35:49.7831513+08:00"},{"id":"df50e47a5b6541093011bb59b1ec831d","path":"internal/handler/device.go","line_range":"61-78","gmt_create":"2026-05-27T18:35:49.7831513+08:00","gmt_modified":"2026-05-27T18:35:49.7831513+08:00"},{"id":"0a425d8fed248deb7202bc7e8d531ca1","path":"internal/middleware/logger.go","line_range":"10-45","gmt_create":"2026-05-27T18:35:49.7836872+08:00","gmt_modified":"2026-05-27T18:35:49.7836872+08:00"},{"id":"d6d27b00ae4ab42348e74a7e7bf688b2","path":"internal/middleware/request_id.go","line_range":"20-31","gmt_create":"2026-05-27T18:35:49.7836872+08:00","gmt_modified":"2026-05-27T18:35:49.7836872+08:00"},{"id":"e9390185152783a55f55e277d45e6948","path":"cmd/server/main.go","line_range":"25-131","gmt_create":"2026-05-27T18:36:40.5088629+08:00","gmt_modified":"2026-05-27T18:36:40.5088629+08:00"},{"id":"a3cbc373dacd9d032ed0c72bca1e51e9","path":"internal/cache/brand_cache.go","line_range":"1-45","gmt_create":"2026-05-27T18:36:40.5088629+08:00","gmt_modified":"2026-05-27T18:36:40.5088629+08:00"},{"id":"d65e653afb8b211f2e5a7845f72b45dd","path":"internal/cache/model_cache.go","line_range":"1-70","gmt_create":"2026-05-27T18:36:40.5093857+08:00","gmt_modified":"2026-05-27T18:36:40.5093857+08:00"},{"id":"a26d903ac77196fac97ddebf48638ab3","path":"internal/repository/brand.go","line_range":"1-100","gmt_create":"2026-05-27T18:36:40.5093857+08:00","gmt_modified":"2026-05-27T18:36:40.5093857+08:00"},{"id":"7ffaf7b06ea96ca93862aa0dae926ff5","path":"internal/repository/model.go","line_range":"1-181","gmt_create":"2026-05-27T18:36:40.5093857+08:00","gmt_modified":"2026-05-27T18:36:40.5093857+08:00"},{"id":"187b4628003859e3da78f3937c686803","path":"internal/cache/brand_cache.go","line_range":"18-45","gmt_create":"2026-05-27T18:36:40.5109436+08:00","gmt_modified":"2026-05-27T18:36:40.5109436+08:00"},{"id":"a6c526ea58aabee86ae3010b00441c69","path":"internal/cache/model_cache.go","line_range":"19-70","gmt_create":"2026-05-27T18:36:40.5114567+08:00","gmt_modified":"2026-05-27T18:36:40.5114567+08:00"},{"id":"a364a8daa183eaf86417b4c1bd2cc719","path":"internal/repository/brand.go","line_range":"14-100","gmt_create":"2026-05-27T18:36:40.5114567+08:00","gmt_modified":"2026-05-27T18:36:40.5114567+08:00"},{"id":"2e040aabeb8e907eaddc6bbf2ee493ac","path":"internal/repository/model.go","line_range":"14-181","gmt_create":"2026-05-27T18:36:40.5114567+08:00","gmt_modified":"2026-05-27T18:36:40.5114567+08:00"},{"id":"3d315320639ece8212fd138420d94be5","path":"internal/handler/brand.go","line_range":"13-49","gmt_create":"2026-05-27T18:36:40.5120123+08:00","gmt_modified":"2026-05-27T18:36:40.5120123+08:00"},{"id":"fbf36e29345cd3e53fd3a6e8234ad2de","path":"internal/handler/model.go","line_range":"13-50","gmt_create":"2026-05-27T18:36:40.5120123+08:00","gmt_modified":"2026-05-27T18:36:40.5120123+08:00"},{"id":"32b7267a28b0347d59500c38ffa96a7b","path":"internal/cache/brand_cache.go","line_range":"13-45","gmt_create":"2026-05-27T18:36:40.5135974+08:00","gmt_modified":"2026-05-27T18:36:40.5135974+08:00"},{"id":"b9c3c517ffd917351757137ca1338574","path":"internal/cache/model_cache.go","line_range":"27-69","gmt_create":"2026-05-27T18:36:40.5141244+08:00","gmt_modified":"2026-05-27T18:36:40.5141244+08:00"},{"id":"df7d264896976fc8c5475257994c707e","path":"internal/cache/model_cache.go","line_range":"13-70","gmt_create":"2026-05-27T18:36:40.5141244+08:00","gmt_modified":"2026-05-27T18:36:40.5141244+08:00"},{"id":"a3b89d2e56d589f8d902fb9389004bf0","path":"cmd/server/main.go","line_range":"103-131","gmt_create":"2026-05-27T18:36:40.5141244+08:00","gmt_modified":"2026-05-27T18:36:40.5141244+08:00"},{"id":"f76ee32725201731512db1e0e7951586","path":"cmd/server/main.go","line_range":"67-68","gmt_create":"2026-05-27T18:36:40.5146452+08:00","gmt_modified":"2026-05-27T18:36:40.5146452+08:00"},{"id":"251d1b1dc197a1dc242f5384adb1555c","path":"internal/repository/brand.go","line_range":"34-52","gmt_create":"2026-05-27T18:36:40.5146452+08:00","gmt_modified":"2026-05-27T18:36:40.5146452+08:00"},{"id":"a51abc6a6d80413bf60f143cd1f46ee4","path":"internal/repository/model.go","line_range":"27-79","gmt_create":"2026-05-27T18:36:40.5146452+08:00","gmt_modified":"2026-05-27T18:36:40.5146452+08:00"},{"id":"f0b044854c85d50b2d1ba4b9d3e6a6cb","path":"internal/cache/model_cache.go","line_range":"13-17","gmt_create":"2026-05-27T18:36:40.5151635+08:00","gmt_modified":"2026-05-27T18:36:40.5151635+08:00"},{"id":"3f0d637bef43d636594a4816c9da037e","path":"internal/cache/brand_cache.go","line_range":"38-44","gmt_create":"2026-05-27T18:36:40.5151635+08:00","gmt_modified":"2026-05-27T18:36:40.5151635+08:00"},{"id":"3f945faea776f513b5294aa60759fb15","path":"internal/cache/model_cache.go","line_range":"43-69","gmt_create":"2026-05-27T18:36:40.5156806+08:00","gmt_modified":"2026-05-27T18:36:40.5156806+08:00"},{"id":"a272829cfc9c48e8063d8bca53cdebc8","path":"cmd/server/main.go","line_range":"13-23","gmt_create":"2026-05-27T18:36:40.5156806+08:00","gmt_modified":"2026-05-27T18:36:40.5156806+08:00"},{"id":"6d2fece0c97147748fd0269a356e4802","path":"internal/repository/brand.go","line_range":"3-12","gmt_create":"2026-05-27T18:36:40.5156806+08:00","gmt_modified":"2026-05-27T18:36:40.5156806+08:00"},{"id":"282a046f62f9715bfef882f5a4a6a362","path":"internal/router/router.go","line_range":"3-14","gmt_create":"2026-05-27T18:36:40.516202+08:00","gmt_modified":"2026-05-27T18:36:40.516202+08:00"}],"knowledge_relations":[{"id":1,"source_id":"ab98c251-c5f7-40df-bba1-21b2edf5d220","target_id":"523107ca-244f-43c5-a4fe-4649e36a88ad","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ab98c251-c5f7-40df-bba1-21b2edf5d220 -\u003e 523107ca-244f-43c5-a4fe-4649e36a88ad","gmt_create":"2026-05-27T16:00:38.0397713+08:00","gmt_modified":"2026-05-27T16:00:38.0397713+08:00"},{"id":3,"source_id":"ab98c251-c5f7-40df-bba1-21b2edf5d220","target_id":"5910d326-0408-450d-b403-06a19f3da81b","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ab98c251-c5f7-40df-bba1-21b2edf5d220 -\u003e 5910d326-0408-450d-b403-06a19f3da81b","gmt_create":"2026-05-27T16:00:38.0417677+08:00","gmt_modified":"2026-05-27T16:00:38.0417677+08:00"},{"id":4,"source_id":"ab98c251-c5f7-40df-bba1-21b2edf5d220","target_id":"e8e5fe7e-cc7c-4259-95d0-f6b46d888ed8","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ab98c251-c5f7-40df-bba1-21b2edf5d220 -\u003e e8e5fe7e-cc7c-4259-95d0-f6b46d888ed8","gmt_create":"2026-05-27T16:00:38.0417677+08:00","gmt_modified":"2026-05-27T16:00:38.0417677+08:00"},{"id":5,"source_id":"ab98c251-c5f7-40df-bba1-21b2edf5d220","target_id":"5a04f737-b877-4908-a4fc-67a88614aafc","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ab98c251-c5f7-40df-bba1-21b2edf5d220 -\u003e 5a04f737-b877-4908-a4fc-67a88614aafc","gmt_create":"2026-05-27T16:00:38.0427691+08:00","gmt_modified":"2026-05-27T16:00:38.0427691+08:00"},{"id":8,"source_id":"7563e383-3ea0-4630-baeb-e86efcaeefb8","target_id":"97c42095-5b4f-4cec-bbbb-1ba8bb9981d4","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 7563e383-3ea0-4630-baeb-e86efcaeefb8 -\u003e 97c42095-5b4f-4cec-bbbb-1ba8bb9981d4","gmt_create":"2026-05-27T16:00:38.0437677+08:00","gmt_modified":"2026-05-27T16:00:38.0437677+08:00"},{"id":9,"source_id":"7563e383-3ea0-4630-baeb-e86efcaeefb8","target_id":"699a84c5-5140-4267-861e-62bffbffccb4","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 7563e383-3ea0-4630-baeb-e86efcaeefb8 -\u003e 699a84c5-5140-4267-861e-62bffbffccb4","gmt_create":"2026-05-27T16:00:38.0442739+08:00","gmt_modified":"2026-05-27T16:00:38.0442739+08:00"},{"id":10,"source_id":"6159e8a9-0f6e-43af-b097-bfcd16c8b223","target_id":"6f1fe170-ae35-4660-91dc-ab89735274b7","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6159e8a9-0f6e-43af-b097-bfcd16c8b223 -\u003e 6f1fe170-ae35-4660-91dc-ab89735274b7","gmt_create":"2026-05-27T16:00:38.0452805+08:00","gmt_modified":"2026-05-27T16:00:38.0452805+08:00"},{"id":11,"source_id":"6159e8a9-0f6e-43af-b097-bfcd16c8b223","target_id":"6af33e3a-220d-4e68-87ed-bfb96bda4c3a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6159e8a9-0f6e-43af-b097-bfcd16c8b223 -\u003e 6af33e3a-220d-4e68-87ed-bfb96bda4c3a","gmt_create":"2026-05-27T16:00:38.0452805+08:00","gmt_modified":"2026-05-27T16:00:38.0452805+08:00"},{"id":12,"source_id":"6159e8a9-0f6e-43af-b097-bfcd16c8b223","target_id":"e1ed4fc8-f1d6-4e8a-907b-9c39bbe13b92","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6159e8a9-0f6e-43af-b097-bfcd16c8b223 -\u003e e1ed4fc8-f1d6-4e8a-907b-9c39bbe13b92","gmt_create":"2026-05-27T16:00:38.0452805+08:00","gmt_modified":"2026-05-27T16:00:38.0452805+08:00"},{"id":13,"source_id":"6159e8a9-0f6e-43af-b097-bfcd16c8b223","target_id":"0fc3d59c-d219-4f97-af10-473ee62f4de5","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 6159e8a9-0f6e-43af-b097-bfcd16c8b223 -\u003e 0fc3d59c-d219-4f97-af10-473ee62f4de5","gmt_create":"2026-05-27T16:00:38.0462819+08:00","gmt_modified":"2026-05-27T16:00:38.0462819+08:00"},{"id":15,"source_id":"cfbcaa79-26f5-402f-8746-9fe524993684","target_id":"d0c2dea0-a71a-4f16-9889-b37e1e7996e3","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: cfbcaa79-26f5-402f-8746-9fe524993684 -\u003e d0c2dea0-a71a-4f16-9889-b37e1e7996e3","gmt_create":"2026-05-27T16:00:38.0462819+08:00","gmt_modified":"2026-05-27T16:00:38.0462819+08:00"},{"id":16,"source_id":"cfbcaa79-26f5-402f-8746-9fe524993684","target_id":"23a2ffc3-fa50-41ba-b7a6-55354d68a95a","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: cfbcaa79-26f5-402f-8746-9fe524993684 -\u003e 23a2ffc3-fa50-41ba-b7a6-55354d68a95a","gmt_create":"2026-05-27T16:00:38.0472824+08:00","gmt_modified":"2026-05-27T16:00:38.0472824+08:00"},{"id":17,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"d2654fb48612d74ab0ccc06a3aede80b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/router/router.go","gmt_create":"2026-05-27T18:35:29.9094769+08:00","gmt_modified":"2026-05-27T18:35:29.9094769+08:00"},{"id":18,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"fd613068059c593ac4df9eaef2918055","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: cmd/server/main.go","gmt_create":"2026-05-27T18:35:29.9094769+08:00","gmt_modified":"2026-05-27T18:35:29.9094769+08:00"},{"id":19,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"336527cad207564e9ea86fcc4e0ec240","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/middleware/cors.go","gmt_create":"2026-05-27T18:35:29.9100157+08:00","gmt_modified":"2026-05-27T18:35:29.9100157+08:00"},{"id":20,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"f8a733666ceab6a73ba2bf3234e91222","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/middleware/logger.go","gmt_create":"2026-05-27T18:35:29.9100157+08:00","gmt_modified":"2026-05-27T18:35:29.9100157+08:00"},{"id":21,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"2ba2f740fa3334f7c6d51f74470ec4b7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/middleware/request_id.go","gmt_create":"2026-05-27T18:35:29.9105584+08:00","gmt_modified":"2026-05-27T18:35:29.9105584+08:00"},{"id":22,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"a7b9800e6fc68baa0cfda9c8f327b423","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/handler/health.go","gmt_create":"2026-05-27T18:35:29.9111006+08:00","gmt_modified":"2026-05-27T18:35:29.9111006+08:00"},{"id":23,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"4d2b98c1d0a7fa8cf9725fb65019ae0e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/handler/brand.go","gmt_create":"2026-05-27T18:35:29.9111006+08:00","gmt_modified":"2026-05-27T18:35:29.9111006+08:00"},{"id":24,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"b18d19ca2c60406b9cd28010df12296d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/handler/model.go","gmt_create":"2026-05-27T18:35:29.9116443+08:00","gmt_modified":"2026-05-27T18:35:29.9116443+08:00"},{"id":25,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"75f8ef5ebd7eeb0cf2346b392f877e1a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/handler/model_list.go","gmt_create":"2026-05-27T18:35:29.9116443+08:00","gmt_modified":"2026-05-27T18:35:29.9116443+08:00"},{"id":26,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"3a1babcf090301072327433866c0d7d0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/handler/device.go","gmt_create":"2026-05-27T18:35:29.9121832+08:00","gmt_modified":"2026-05-27T18:35:29.9121832+08:00"},{"id":27,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"703706c059a41213d3dbfbddc03fab12","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/response/response.go","gmt_create":"2026-05-27T18:35:29.9121832+08:00","gmt_modified":"2026-05-27T18:35:29.9121832+08:00"},{"id":28,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"0bba4121c12e2cf427dc805016fade40","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/config/config.go","gmt_create":"2026-05-27T18:35:29.9127279+08:00","gmt_modified":"2026-05-27T18:35:29.9127279+08:00"},{"id":29,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"80d716769cf67cd05b504a3bc0a06a92","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: pkg/encode/base64.go","gmt_create":"2026-05-27T18:35:29.9127279+08:00","gmt_modified":"2026-05-27T18:35:29.9127279+08:00"},{"id":30,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"67d9f7c1be7ff64bb9bca0a5f2492621","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: README.md","gmt_create":"2026-05-27T18:35:29.9127279+08:00","gmt_modified":"2026-05-27T18:35:29.9127279+08:00"},{"id":31,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"7bfaa93c0d23eed2727039a5bd3d9a07","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/cache/redis.go","gmt_create":"2026-05-27T18:35:29.9127279+08:00","gmt_modified":"2026-05-27T18:35:29.9127279+08:00"},{"id":32,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"67d3253845127f03f1f9ebe3f6a6aaa3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/cache/brand_cache.go","gmt_create":"2026-05-27T18:35:29.9137674+08:00","gmt_modified":"2026-05-27T18:35:29.9137674+08:00"},{"id":33,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"018b14cbce05561cfb50fe7e6e3835a3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/cache/model_cache.go","gmt_create":"2026-05-27T18:35:29.9137674+08:00","gmt_modified":"2026-05-27T18:35:29.9137674+08:00"},{"id":34,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"276b4d58e492bc3f7c258914abb959e4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/repository/brand.go","gmt_create":"2026-05-27T18:35:29.9137674+08:00","gmt_modified":"2026-05-27T18:35:29.9137674+08:00"},{"id":35,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"4ca752eb084c575a36939921aeeb9984","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/repository/model.go","gmt_create":"2026-05-27T18:35:29.9137674+08:00","gmt_modified":"2026-05-27T18:35:29.9137674+08:00"},{"id":36,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"ac542a8b31381c132de78b921e3216d4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/config/redis.go","gmt_create":"2026-05-27T18:35:29.9137674+08:00","gmt_modified":"2026-05-27T18:35:29.9137674+08:00"},{"id":37,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"d2c7a50459a83c5ef23e809b0f194aba","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/config/meilisearch.go","gmt_create":"2026-05-27T18:35:29.9137674+08:00","gmt_modified":"2026-05-27T18:35:29.9137674+08:00"},{"id":38,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"333405ee9924108619cd8443f735d754","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/router/router.go#16-52","gmt_create":"2026-05-27T18:35:29.9152992+08:00","gmt_modified":"2026-05-27T18:35:29.9152992+08:00"},{"id":39,"source_id":"d2654fb48612d74ab0ccc06a3aede80b","target_id":"333405ee9924108619cd8443f735d754","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 16-52","gmt_create":"2026-05-27T18:35:29.9152992+08:00","gmt_modified":"2026-05-27T18:35:29.9152992+08:00"},{"id":40,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"6eda76d6eb6015250ec186fdafd0b3c9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: cmd/server/main.go#59-70","gmt_create":"2026-05-27T18:35:29.9152992+08:00","gmt_modified":"2026-05-27T18:35:29.9152992+08:00"},{"id":41,"source_id":"fd613068059c593ac4df9eaef2918055","target_id":"6eda76d6eb6015250ec186fdafd0b3c9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 59-70","gmt_create":"2026-05-27T18:35:29.9152992+08:00","gmt_modified":"2026-05-27T18:35:29.9152992+08:00"},{"id":42,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"553e943cfb2f6b7752122999084a80a5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/brand_cache.go#18-44","gmt_create":"2026-05-27T18:35:29.9152992+08:00","gmt_modified":"2026-05-27T18:35:29.9152992+08:00"},{"id":43,"source_id":"67d3253845127f03f1f9ebe3f6a6aaa3","target_id":"553e943cfb2f6b7752122999084a80a5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 18-44","gmt_create":"2026-05-27T18:35:29.9152992+08:00","gmt_modified":"2026-05-27T18:35:29.9152992+08:00"},{"id":44,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"d7c4ecf9c38df06865431d0dcd796162","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/model_cache.go#19-69","gmt_create":"2026-05-27T18:35:29.9152992+08:00","gmt_modified":"2026-05-27T18:35:29.9152992+08:00"},{"id":45,"source_id":"018b14cbce05561cfb50fe7e6e3835a3","target_id":"d7c4ecf9c38df06865431d0dcd796162","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 19-69","gmt_create":"2026-05-27T18:35:29.9152992+08:00","gmt_modified":"2026-05-27T18:35:29.9152992+08:00"},{"id":46,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"5ec84f3864f3fa2c3ab1d97fe69d5529","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/brand.go#14-52","gmt_create":"2026-05-27T18:35:29.9152992+08:00","gmt_modified":"2026-05-27T18:35:29.9152992+08:00"},{"id":47,"source_id":"276b4d58e492bc3f7c258914abb959e4","target_id":"5ec84f3864f3fa2c3ab1d97fe69d5529","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-52","gmt_create":"2026-05-27T18:35:29.9181432+08:00","gmt_modified":"2026-05-27T18:35:29.9181432+08:00"},{"id":48,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"468dd8105671ed478ff86ca97c0609ba","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/model.go#14-79","gmt_create":"2026-05-27T18:35:29.9181432+08:00","gmt_modified":"2026-05-27T18:35:29.9181432+08:00"},{"id":49,"source_id":"4ca752eb084c575a36939921aeeb9984","target_id":"468dd8105671ed478ff86ca97c0609ba","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-79","gmt_create":"2026-05-27T18:35:29.9186699+08:00","gmt_modified":"2026-05-27T18:35:29.9186699+08:00"},{"id":50,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"a0b3e000a5b789bf08d2d996fc17d8df","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: cmd/server/main.go#25-101","gmt_create":"2026-05-27T18:35:29.9191948+08:00","gmt_modified":"2026-05-27T18:35:29.9191948+08:00"},{"id":51,"source_id":"fd613068059c593ac4df9eaef2918055","target_id":"a0b3e000a5b789bf08d2d996fc17d8df","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 25-101","gmt_create":"2026-05-27T18:35:29.9191948+08:00","gmt_modified":"2026-05-27T18:35:29.9191948+08:00"},{"id":52,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"111557d31227afead72d0f01becea3bc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: README.md#19-123","gmt_create":"2026-05-27T18:35:29.9197286+08:00","gmt_modified":"2026-05-27T18:35:29.9197286+08:00"},{"id":53,"source_id":"67d9f7c1be7ff64bb9bca0a5f2492621","target_id":"111557d31227afead72d0f01becea3bc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 19-123","gmt_create":"2026-05-27T18:35:29.9197286+08:00","gmt_modified":"2026-05-27T18:35:29.9197286+08:00"},{"id":54,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"5db111a430cac488cabeb543494fb917","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/response/response.go#15-36","gmt_create":"2026-05-27T18:35:29.9202582+08:00","gmt_modified":"2026-05-27T18:35:29.9202582+08:00"},{"id":55,"source_id":"703706c059a41213d3dbfbddc03fab12","target_id":"5db111a430cac488cabeb543494fb917","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 15-36","gmt_create":"2026-05-27T18:35:29.9209575+08:00","gmt_modified":"2026-05-27T18:35:29.9209575+08:00"},{"id":56,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"891c848d9153926513b9005f2d61382e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/middleware/logger.go#10-44","gmt_create":"2026-05-27T18:35:29.9214708+08:00","gmt_modified":"2026-05-27T18:35:29.9214708+08:00"},{"id":57,"source_id":"f8a733666ceab6a73ba2bf3234e91222","target_id":"891c848d9153926513b9005f2d61382e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 10-44","gmt_create":"2026-05-27T18:35:29.9220086+08:00","gmt_modified":"2026-05-27T18:35:29.9220086+08:00"},{"id":58,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"8a6a9ea04bb9b0de8fd0195ca491b154","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/middleware/request_id.go#20-29","gmt_create":"2026-05-27T18:35:29.9220086+08:00","gmt_modified":"2026-05-27T18:35:29.9220086+08:00"},{"id":59,"source_id":"2ba2f740fa3334f7c6d51f74470ec4b7","target_id":"8a6a9ea04bb9b0de8fd0195ca491b154","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 20-29","gmt_create":"2026-05-27T18:35:29.9225391+08:00","gmt_modified":"2026-05-27T18:35:29.9225391+08:00"},{"id":60,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"99d2500a6a0922c50675ed247c6777e5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/middleware/cors.go#7-19","gmt_create":"2026-05-27T18:35:29.9225391+08:00","gmt_modified":"2026-05-27T18:35:29.9225391+08:00"},{"id":61,"source_id":"336527cad207564e9ea86fcc4e0ec240","target_id":"99d2500a6a0922c50675ed247c6777e5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 7-19","gmt_create":"2026-05-27T18:35:29.9230634+08:00","gmt_modified":"2026-05-27T18:35:29.9230634+08:00"},{"id":62,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"c86c8f1c951956c0397e6c938ccc641c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/router/router.go#23-36","gmt_create":"2026-05-27T18:35:29.9241149+08:00","gmt_modified":"2026-05-27T18:35:29.9241149+08:00"},{"id":63,"source_id":"d2654fb48612d74ab0ccc06a3aede80b","target_id":"c86c8f1c951956c0397e6c938ccc641c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 23-36","gmt_create":"2026-05-27T18:35:29.9241149+08:00","gmt_modified":"2026-05-27T18:35:29.9241149+08:00"},{"id":64,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"99701e03d9c9476a15f742b82e5adfa5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/brand_cache.go#13-44","gmt_create":"2026-05-27T18:35:29.9241149+08:00","gmt_modified":"2026-05-27T18:35:29.9241149+08:00"},{"id":65,"source_id":"67d3253845127f03f1f9ebe3f6a6aaa3","target_id":"99701e03d9c9476a15f742b82e5adfa5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-44","gmt_create":"2026-05-27T18:35:29.9246449+08:00","gmt_modified":"2026-05-27T18:35:29.9246449+08:00"},{"id":66,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"a072f4ebff3b6cc9eaf8025737ca42d3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/model_cache.go#13-69","gmt_create":"2026-05-27T18:35:29.9251757+08:00","gmt_modified":"2026-05-27T18:35:29.9251757+08:00"},{"id":67,"source_id":"018b14cbce05561cfb50fe7e6e3835a3","target_id":"a072f4ebff3b6cc9eaf8025737ca42d3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-69","gmt_create":"2026-05-27T18:35:29.9251757+08:00","gmt_modified":"2026-05-27T18:35:29.9251757+08:00"},{"id":68,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"d4f94a6e4a0cd46ebc0c5f03e96c6232","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/router/router.go#38-49","gmt_create":"2026-05-27T18:35:29.9257015+08:00","gmt_modified":"2026-05-27T18:35:29.9257015+08:00"},{"id":69,"source_id":"d2654fb48612d74ab0ccc06a3aede80b","target_id":"d4f94a6e4a0cd46ebc0c5f03e96c6232","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 38-49","gmt_create":"2026-05-27T18:35:29.9257015+08:00","gmt_modified":"2026-05-27T18:35:29.9257015+08:00"},{"id":70,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"0a2840d641ba5dccfff95a35d7317004","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: README.md#83-110","gmt_create":"2026-05-27T18:35:29.9262333+08:00","gmt_modified":"2026-05-27T18:35:29.9262333+08:00"},{"id":71,"source_id":"67d9f7c1be7ff64bb9bca0a5f2492621","target_id":"0a2840d641ba5dccfff95a35d7317004","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 83-110","gmt_create":"2026-05-27T18:35:29.9262333+08:00","gmt_modified":"2026-05-27T18:35:29.9262333+08:00"},{"id":72,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"491bd71f42db0fd5bf1d4851b9c4aaa9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/health.go#14-18","gmt_create":"2026-05-27T18:35:29.9273021+08:00","gmt_modified":"2026-05-27T18:35:29.9273021+08:00"},{"id":73,"source_id":"a7b9800e6fc68baa0cfda9c8f327b423","target_id":"491bd71f42db0fd5bf1d4851b9c4aaa9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-18","gmt_create":"2026-05-27T18:35:29.9273021+08:00","gmt_modified":"2026-05-27T18:35:29.9273021+08:00"},{"id":74,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"fce5662f14aa6386a5036b5241e00b1c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/response/response.go#15-21","gmt_create":"2026-05-27T18:35:29.9278475+08:00","gmt_modified":"2026-05-27T18:35:29.9278475+08:00"},{"id":75,"source_id":"703706c059a41213d3dbfbddc03fab12","target_id":"fce5662f14aa6386a5036b5241e00b1c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 15-21","gmt_create":"2026-05-27T18:35:29.9278475+08:00","gmt_modified":"2026-05-27T18:35:29.9278475+08:00"},{"id":76,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"7e3954c3e70a9252de9cfdec52ed93c8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/brand.go#25-48","gmt_create":"2026-05-27T18:35:29.9278475+08:00","gmt_modified":"2026-05-27T18:35:29.9278475+08:00"},{"id":77,"source_id":"4d2b98c1d0a7fa8cf9725fb65019ae0e","target_id":"7e3954c3e70a9252de9cfdec52ed93c8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 25-48","gmt_create":"2026-05-27T18:35:29.9283823+08:00","gmt_modified":"2026-05-27T18:35:29.9283823+08:00"},{"id":78,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"79304ed9558f17f9ecb0dc7d24add547","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: pkg/encode/base64.go#44-51","gmt_create":"2026-05-27T18:35:29.9283823+08:00","gmt_modified":"2026-05-27T18:35:29.9283823+08:00"},{"id":79,"source_id":"80d716769cf67cd05b504a3bc0a06a92","target_id":"79304ed9558f17f9ecb0dc7d24add547","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 44-51","gmt_create":"2026-05-27T18:35:29.9289151+08:00","gmt_modified":"2026-05-27T18:35:29.9289151+08:00"},{"id":80,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"a6d16b8965ed7f207f19f8f915ad53a4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/model.go#25-49","gmt_create":"2026-05-27T18:35:29.9289151+08:00","gmt_modified":"2026-05-27T18:35:29.9289151+08:00"},{"id":81,"source_id":"b18d19ca2c60406b9cd28010df12296d","target_id":"a6d16b8965ed7f207f19f8f915ad53a4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 25-49","gmt_create":"2026-05-27T18:35:29.9289151+08:00","gmt_modified":"2026-05-27T18:35:29.9289151+08:00"},{"id":82,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"fce0c17d6c03e511c3afeaee662ad34f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/model_list.go#26-56","gmt_create":"2026-05-27T18:35:29.930006+08:00","gmt_modified":"2026-05-27T18:35:29.930006+08:00"},{"id":83,"source_id":"75f8ef5ebd7eeb0cf2346b392f877e1a","target_id":"fce0c17d6c03e511c3afeaee662ad34f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-56","gmt_create":"2026-05-27T18:35:29.930006+08:00","gmt_modified":"2026-05-27T18:35:29.930006+08:00"},{"id":84,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"d4bd0610a0ad3d8fd8d33ac5f4aa83b5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/device.go#26-84","gmt_create":"2026-05-27T18:35:29.930538+08:00","gmt_modified":"2026-05-27T18:35:29.930538+08:00"},{"id":85,"source_id":"3a1babcf090301072327433866c0d7d0","target_id":"d4bd0610a0ad3d8fd8d33ac5f4aa83b5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-84","gmt_create":"2026-05-27T18:35:29.930538+08:00","gmt_modified":"2026-05-27T18:35:29.930538+08:00"},{"id":86,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"1be2a5a025cb64eeb20d5e54d293203f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/middleware/logger.go#33-43","gmt_create":"2026-05-27T18:35:29.9321249+08:00","gmt_modified":"2026-05-27T18:35:29.9321249+08:00"},{"id":87,"source_id":"f8a733666ceab6a73ba2bf3234e91222","target_id":"1be2a5a025cb64eeb20d5e54d293203f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 33-43","gmt_create":"2026-05-27T18:35:29.9326589+08:00","gmt_modified":"2026-05-27T18:35:29.9326589+08:00"},{"id":88,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"5f4eb9799d6c811ddcc430f51e299cf6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/middleware/request_id.go#22-27","gmt_create":"2026-05-27T18:35:29.9326589+08:00","gmt_modified":"2026-05-27T18:35:29.9326589+08:00"},{"id":89,"source_id":"2ba2f740fa3334f7c6d51f74470ec4b7","target_id":"5f4eb9799d6c811ddcc430f51e299cf6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 22-27","gmt_create":"2026-05-27T18:35:29.9331872+08:00","gmt_modified":"2026-05-27T18:35:29.9331872+08:00"},{"id":90,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"be85f7cf4e9dd0c2460475b95efb085d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/middleware/cors.go#9-12","gmt_create":"2026-05-27T18:35:29.9331872+08:00","gmt_modified":"2026-05-27T18:35:29.9331872+08:00"},{"id":91,"source_id":"336527cad207564e9ea86fcc4e0ec240","target_id":"be85f7cf4e9dd0c2460475b95efb085d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 9-12","gmt_create":"2026-05-27T18:35:29.9337179+08:00","gmt_modified":"2026-05-27T18:35:29.9337179+08:00"},{"id":92,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"730d8469648c9599ccbc091a9496d2a1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/response/response.go#23-36","gmt_create":"2026-05-27T18:35:29.9337179+08:00","gmt_modified":"2026-05-27T18:35:29.9337179+08:00"},{"id":93,"source_id":"703706c059a41213d3dbfbddc03fab12","target_id":"730d8469648c9599ccbc091a9496d2a1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 23-36","gmt_create":"2026-05-27T18:35:29.9337179+08:00","gmt_modified":"2026-05-27T18:35:29.9337179+08:00"},{"id":94,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"d48bcd5374602483c104c7d50c7224fb","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/router/router.go#18-21","gmt_create":"2026-05-27T18:35:29.9354707+08:00","gmt_modified":"2026-05-27T18:35:29.9354707+08:00"},{"id":95,"source_id":"d2654fb48612d74ab0ccc06a3aede80b","target_id":"d48bcd5374602483c104c7d50c7224fb","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 18-21","gmt_create":"2026-05-27T18:35:29.936015+08:00","gmt_modified":"2026-05-27T18:35:29.936015+08:00"},{"id":96,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"798bc9e7f1a3902993b3aa9acba73022","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/middleware/logger.go#16","gmt_create":"2026-05-27T18:35:29.936015+08:00","gmt_modified":"2026-05-27T18:35:29.936015+08:00"},{"id":97,"source_id":"f8a733666ceab6a73ba2bf3234e91222","target_id":"798bc9e7f1a3902993b3aa9acba73022","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 16","gmt_create":"2026-05-27T18:35:29.9365406+08:00","gmt_modified":"2026-05-27T18:35:29.9365406+08:00"},{"id":98,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"ed43fe99536e371ce908f167a68124f8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/middleware/request_id.go#28","gmt_create":"2026-05-27T18:35:29.9370715+08:00","gmt_modified":"2026-05-27T18:35:29.9370715+08:00"},{"id":99,"source_id":"2ba2f740fa3334f7c6d51f74470ec4b7","target_id":"ed43fe99536e371ce908f167a68124f8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 28","gmt_create":"2026-05-27T18:35:29.9375945+08:00","gmt_modified":"2026-05-27T18:35:29.9375945+08:00"},{"id":100,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"08c02a0d77d871b6c9650cbfcdf84c94","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/middleware/cors.go#18","gmt_create":"2026-05-27T18:35:29.9375945+08:00","gmt_modified":"2026-05-27T18:35:29.9375945+08:00"},{"id":101,"source_id":"336527cad207564e9ea86fcc4e0ec240","target_id":"08c02a0d77d871b6c9650cbfcdf84c94","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 18","gmt_create":"2026-05-27T18:35:29.938135+08:00","gmt_modified":"2026-05-27T18:35:29.938135+08:00"},{"id":102,"source_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","target_id":"e88b0ee062bd02dd7acdf8e2e945b270","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: cmd/server/main.go#103-130","gmt_create":"2026-05-27T18:35:29.938135+08:00","gmt_modified":"2026-05-27T18:35:29.938135+08:00"},{"id":103,"source_id":"fd613068059c593ac4df9eaef2918055","target_id":"e88b0ee062bd02dd7acdf8e2e945b270","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 103-130","gmt_create":"2026-05-27T18:35:29.938674+08:00","gmt_modified":"2026-05-27T18:35:29.938674+08:00"},{"id":104,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"276b4d58e492bc3f7c258914abb959e4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/repository/brand.go","gmt_create":"2026-05-27T18:35:41.7574665+08:00","gmt_modified":"2026-05-27T18:35:41.7574665+08:00"},{"id":105,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"4ca752eb084c575a36939921aeeb9984","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/repository/model.go","gmt_create":"2026-05-27T18:35:41.7574665+08:00","gmt_modified":"2026-05-27T18:35:41.7574665+08:00"},{"id":106,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"67d3253845127f03f1f9ebe3f6a6aaa3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/cache/brand_cache.go","gmt_create":"2026-05-27T18:35:41.7574665+08:00","gmt_modified":"2026-05-27T18:35:41.7574665+08:00"},{"id":107,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"018b14cbce05561cfb50fe7e6e3835a3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/cache/model_cache.go","gmt_create":"2026-05-27T18:35:41.7574665+08:00","gmt_modified":"2026-05-27T18:35:41.7574665+08:00"},{"id":108,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"7bfaa93c0d23eed2727039a5bd3d9a07","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/cache/redis.go","gmt_create":"2026-05-27T18:35:41.7574665+08:00","gmt_modified":"2026-05-27T18:35:41.7574665+08:00"},{"id":109,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"0b4d10e2e0a550819cadaa7dbef9ecd1","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/database/mysql.go","gmt_create":"2026-05-27T18:35:41.7574665+08:00","gmt_modified":"2026-05-27T18:35:41.7574665+08:00"},{"id":110,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"a0a3a762dc85a8d8c5bb359f5c523def","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/config/database.go","gmt_create":"2026-05-27T18:35:41.7574665+08:00","gmt_modified":"2026-05-27T18:35:41.7574665+08:00"},{"id":111,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"ac542a8b31381c132de78b921e3216d4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/config/redis.go","gmt_create":"2026-05-27T18:35:41.7574665+08:00","gmt_modified":"2026-05-27T18:35:41.7574665+08:00"},{"id":112,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"0bba4121c12e2cf427dc805016fade40","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/config/config.go","gmt_create":"2026-05-27T18:35:41.7574665+08:00","gmt_modified":"2026-05-27T18:35:41.7574665+08:00"},{"id":113,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"6e3fd9bdc8a1ccaaa905d91772ecca2c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/brand.go","gmt_create":"2026-05-27T18:35:41.7574665+08:00","gmt_modified":"2026-05-27T18:35:41.7574665+08:00"},{"id":114,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"e9902bfcef1f5908b5123648ae6b07c6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/model.go","gmt_create":"2026-05-27T18:35:41.7574665+08:00","gmt_modified":"2026-05-27T18:35:41.7574665+08:00"},{"id":115,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"4d2b98c1d0a7fa8cf9725fb65019ae0e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/handler/brand.go","gmt_create":"2026-05-27T18:35:41.7574665+08:00","gmt_modified":"2026-05-27T18:35:41.7574665+08:00"},{"id":116,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"b18d19ca2c60406b9cd28010df12296d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/handler/model.go","gmt_create":"2026-05-27T18:35:41.7574665+08:00","gmt_modified":"2026-05-27T18:35:41.7574665+08:00"},{"id":117,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"d2654fb48612d74ab0ccc06a3aede80b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/router/router.go","gmt_create":"2026-05-27T18:35:41.772274+08:00","gmt_modified":"2026-05-27T18:35:41.772274+08:00"},{"id":118,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"fd613068059c593ac4df9eaef2918055","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: cmd/server/main.go","gmt_create":"2026-05-27T18:35:41.7739049+08:00","gmt_modified":"2026-05-27T18:35:41.7739049+08:00"},{"id":119,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"c56e5254bd7f42350c5261822fa135bb","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: sql/model.sql","gmt_create":"2026-05-27T18:35:41.7739049+08:00","gmt_modified":"2026-05-27T18:35:41.7739049+08:00"},{"id":120,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"47165ac2566e8b2d3796014bdb75361f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: go.mod","gmt_create":"2026-05-27T18:35:41.774462+08:00","gmt_modified":"2026-05-27T18:35:41.774462+08:00"},{"id":121,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"e88b0ee062bd02dd7acdf8e2e945b270","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: cmd/server/main.go#103-130","gmt_create":"2026-05-27T18:35:41.774462+08:00","gmt_modified":"2026-05-27T18:35:41.774462+08:00"},{"id":122,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"64381887b12f6927d8b0481a55c2dcf1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/router/router.go#22-25","gmt_create":"2026-05-27T18:35:41.7750027+08:00","gmt_modified":"2026-05-27T18:35:41.7750027+08:00"},{"id":123,"source_id":"d2654fb48612d74ab0ccc06a3aede80b","target_id":"64381887b12f6927d8b0481a55c2dcf1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 22-25","gmt_create":"2026-05-27T18:35:41.7750027+08:00","gmt_modified":"2026-05-27T18:35:41.7750027+08:00"},{"id":124,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"1503a99bb2f2ab96e4a3a830d8834e45","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/brand.go#19-24","gmt_create":"2026-05-27T18:35:41.7755529+08:00","gmt_modified":"2026-05-27T18:35:41.7755529+08:00"},{"id":125,"source_id":"4d2b98c1d0a7fa8cf9725fb65019ae0e","target_id":"1503a99bb2f2ab96e4a3a830d8834e45","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 19-24","gmt_create":"2026-05-27T18:35:41.7755529+08:00","gmt_modified":"2026-05-27T18:35:41.7755529+08:00"},{"id":126,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"f74cdc773e62a1a9f5a4bf940b5961e3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/model.go#19-24","gmt_create":"2026-05-27T18:35:41.7760825+08:00","gmt_modified":"2026-05-27T18:35:41.7760825+08:00"},{"id":127,"source_id":"b18d19ca2c60406b9cd28010df12296d","target_id":"f74cdc773e62a1a9f5a4bf940b5961e3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 19-24","gmt_create":"2026-05-27T18:35:41.7760825+08:00","gmt_modified":"2026-05-27T18:35:41.7760825+08:00"},{"id":128,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"8b0db394a538b6652de2e6634277ad0f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/brand.go#14-21","gmt_create":"2026-05-27T18:35:41.7766018+08:00","gmt_modified":"2026-05-27T18:35:41.7766018+08:00"},{"id":129,"source_id":"276b4d58e492bc3f7c258914abb959e4","target_id":"8b0db394a538b6652de2e6634277ad0f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-21","gmt_create":"2026-05-27T18:35:41.7766018+08:00","gmt_modified":"2026-05-27T18:35:41.7766018+08:00"},{"id":130,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"03f26c7c55e18e6266ea8e543a032229","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/model.go#14-21","gmt_create":"2026-05-27T18:35:41.7771345+08:00","gmt_modified":"2026-05-27T18:35:41.7771345+08:00"},{"id":131,"source_id":"4ca752eb084c575a36939921aeeb9984","target_id":"03f26c7c55e18e6266ea8e543a032229","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-21","gmt_create":"2026-05-27T18:35:41.7771345+08:00","gmt_modified":"2026-05-27T18:35:41.7771345+08:00"},{"id":132,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"8fab617bba600779abac7805723180a0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/brand_cache.go#18-24","gmt_create":"2026-05-27T18:35:41.7777054+08:00","gmt_modified":"2026-05-27T18:35:41.7777054+08:00"},{"id":133,"source_id":"67d3253845127f03f1f9ebe3f6a6aaa3","target_id":"8fab617bba600779abac7805723180a0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 18-24","gmt_create":"2026-05-27T18:35:41.7777054+08:00","gmt_modified":"2026-05-27T18:35:41.7777054+08:00"},{"id":134,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"006d91f2f5f75fd7cd586165c200ba98","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/model_cache.go#19-25","gmt_create":"2026-05-27T18:35:41.7777054+08:00","gmt_modified":"2026-05-27T18:35:41.7777054+08:00"},{"id":135,"source_id":"018b14cbce05561cfb50fe7e6e3835a3","target_id":"006d91f2f5f75fd7cd586165c200ba98","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 19-25","gmt_create":"2026-05-27T18:35:41.7782257+08:00","gmt_modified":"2026-05-27T18:35:41.7782257+08:00"},{"id":136,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"509525e0463c03c509709a6bd1765d4f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/redis.go#10-16","gmt_create":"2026-05-27T18:35:41.7782257+08:00","gmt_modified":"2026-05-27T18:35:41.7782257+08:00"},{"id":137,"source_id":"7bfaa93c0d23eed2727039a5bd3d9a07","target_id":"509525e0463c03c509709a6bd1765d4f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 10-16","gmt_create":"2026-05-27T18:35:41.7787495+08:00","gmt_modified":"2026-05-27T18:35:41.7787495+08:00"},{"id":138,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"57b8aed283762226a00482b42a8acf5b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/database/mysql.go#14-46","gmt_create":"2026-05-27T18:35:41.7787495+08:00","gmt_modified":"2026-05-27T18:35:41.7787495+08:00"},{"id":139,"source_id":"0b4d10e2e0a550819cadaa7dbef9ecd1","target_id":"57b8aed283762226a00482b42a8acf5b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-46","gmt_create":"2026-05-27T18:35:41.7792726+08:00","gmt_modified":"2026-05-27T18:35:41.7792726+08:00"},{"id":140,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"4ab082407b96e18f67a65d07eb4a331d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/config/database.go#17-40","gmt_create":"2026-05-27T18:35:41.7792726+08:00","gmt_modified":"2026-05-27T18:35:41.7792726+08:00"},{"id":141,"source_id":"a0a3a762dc85a8d8c5bb359f5c523def","target_id":"4ab082407b96e18f67a65d07eb4a331d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 17-40","gmt_create":"2026-05-27T18:35:41.7792726+08:00","gmt_modified":"2026-05-27T18:35:41.7792726+08:00"},{"id":142,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"fd2a12d243b52512003ae067f53a7548","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/config/redis.go#9-57","gmt_create":"2026-05-27T18:35:41.7797862+08:00","gmt_modified":"2026-05-27T18:35:41.7797862+08:00"},{"id":143,"source_id":"ac542a8b31381c132de78b921e3216d4","target_id":"fd2a12d243b52512003ae067f53a7548","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 9-57","gmt_create":"2026-05-27T18:35:41.7797862+08:00","gmt_modified":"2026-05-27T18:35:41.7797862+08:00"},{"id":144,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"61d69bf4d3c8c548eecfd677394486d6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/config/config.go#18-52","gmt_create":"2026-05-27T18:35:41.7797862+08:00","gmt_modified":"2026-05-27T18:35:41.7797862+08:00"},{"id":145,"source_id":"0bba4121c12e2cf427dc805016fade40","target_id":"61d69bf4d3c8c548eecfd677394486d6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 18-52","gmt_create":"2026-05-27T18:35:41.7803146+08:00","gmt_modified":"2026-05-27T18:35:41.7803146+08:00"},{"id":146,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"e87c932ace50951cb91aa66877ad6f81","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: sql/model.sql#24-35","gmt_create":"2026-05-27T18:35:41.7803146+08:00","gmt_modified":"2026-05-27T18:35:41.7803146+08:00"},{"id":147,"source_id":"c56e5254bd7f42350c5261822fa135bb","target_id":"e87c932ace50951cb91aa66877ad6f81","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 24-35","gmt_create":"2026-05-27T18:35:41.78084+08:00","gmt_modified":"2026-05-27T18:35:41.78084+08:00"},{"id":148,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"90226e287e9b66f5a36ba2316d7a7cd7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/router/router.go#14-41","gmt_create":"2026-05-27T18:35:41.78084+08:00","gmt_modified":"2026-05-27T18:35:41.78084+08:00"},{"id":149,"source_id":"d2654fb48612d74ab0ccc06a3aede80b","target_id":"90226e287e9b66f5a36ba2316d7a7cd7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-41","gmt_create":"2026-05-27T18:35:41.7813615+08:00","gmt_modified":"2026-05-27T18:35:41.7813615+08:00"},{"id":150,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"9918f39149aaf1f5c3ec03275d6e3673","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/brand.go#23-52","gmt_create":"2026-05-27T18:35:41.7837575+08:00","gmt_modified":"2026-05-27T18:35:41.7837575+08:00"},{"id":151,"source_id":"276b4d58e492bc3f7c258914abb959e4","target_id":"9918f39149aaf1f5c3ec03275d6e3673","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 23-52","gmt_create":"2026-05-27T18:35:41.7842961+08:00","gmt_modified":"2026-05-27T18:35:41.7842961+08:00"},{"id":152,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"a19fb2ac137e43d92d2ef93e8d79f0a7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/model.go#23-79","gmt_create":"2026-05-27T18:35:41.7842961+08:00","gmt_modified":"2026-05-27T18:35:41.7842961+08:00"},{"id":153,"source_id":"4ca752eb084c575a36939921aeeb9984","target_id":"a19fb2ac137e43d92d2ef93e8d79f0a7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 23-79","gmt_create":"2026-05-27T18:35:41.7848355+08:00","gmt_modified":"2026-05-27T18:35:41.7848355+08:00"},{"id":154,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"72322f320f907b6eec72e885e30759eb","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/brand_cache.go#26-44","gmt_create":"2026-05-27T18:35:41.7848355+08:00","gmt_modified":"2026-05-27T18:35:41.7848355+08:00"},{"id":155,"source_id":"67d3253845127f03f1f9ebe3f6a6aaa3","target_id":"72322f320f907b6eec72e885e30759eb","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 26-44","gmt_create":"2026-05-27T18:35:41.7848355+08:00","gmt_modified":"2026-05-27T18:35:41.7848355+08:00"},{"id":156,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"d0f658c42abae9b6dc0baaa8fc7d0694","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/model_cache.go#31-69","gmt_create":"2026-05-27T18:35:41.7853732+08:00","gmt_modified":"2026-05-27T18:35:41.7853732+08:00"},{"id":157,"source_id":"018b14cbce05561cfb50fe7e6e3835a3","target_id":"d0f658c42abae9b6dc0baaa8fc7d0694","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 31-69","gmt_create":"2026-05-27T18:35:41.7853732+08:00","gmt_modified":"2026-05-27T18:35:41.7853732+08:00"},{"id":158,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"a952e5d5b625754a2e9249983bb8abaa","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/config/database.go#17-72","gmt_create":"2026-05-27T18:35:41.7859103+08:00","gmt_modified":"2026-05-27T18:35:41.7859103+08:00"},{"id":159,"source_id":"a0a3a762dc85a8d8c5bb359f5c523def","target_id":"a952e5d5b625754a2e9249983bb8abaa","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 17-72","gmt_create":"2026-05-27T18:35:41.7864448+08:00","gmt_modified":"2026-05-27T18:35:41.7864448+08:00"},{"id":160,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"f7af3a1998c24f922aa650a69b252734","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/config/redis.go#16-57","gmt_create":"2026-05-27T18:35:41.7864448+08:00","gmt_modified":"2026-05-27T18:35:41.7864448+08:00"},{"id":161,"source_id":"ac542a8b31381c132de78b921e3216d4","target_id":"f7af3a1998c24f922aa650a69b252734","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 16-57","gmt_create":"2026-05-27T18:35:41.786982+08:00","gmt_modified":"2026-05-27T18:35:41.786982+08:00"},{"id":162,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"7e3954c3e70a9252de9cfdec52ed93c8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/brand.go#25-48","gmt_create":"2026-05-27T18:35:41.7880705+08:00","gmt_modified":"2026-05-27T18:35:41.7880705+08:00"},{"id":163,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"a6d16b8965ed7f207f19f8f915ad53a4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/model.go#25-49","gmt_create":"2026-05-27T18:35:41.7885925+08:00","gmt_modified":"2026-05-27T18:35:41.7885925+08:00"},{"id":164,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"c7bf654a5faf00b02953d2e56747a669","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/database/mysql.go#28-43","gmt_create":"2026-05-27T18:35:41.7896921+08:00","gmt_modified":"2026-05-27T18:35:41.7896921+08:00"},{"id":165,"source_id":"0b4d10e2e0a550819cadaa7dbef9ecd1","target_id":"c7bf654a5faf00b02953d2e56747a669","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 28-43","gmt_create":"2026-05-27T18:35:41.7896921+08:00","gmt_modified":"2026-05-27T18:35:41.7896921+08:00"},{"id":166,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"1d3714bd55d5d3f773f1ab7fdb8c9b53","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/brand.go#3-6","gmt_create":"2026-05-27T18:35:41.7907502+08:00","gmt_modified":"2026-05-27T18:35:41.7907502+08:00"},{"id":167,"source_id":"6e3fd9bdc8a1ccaaa905d91772ecca2c","target_id":"1d3714bd55d5d3f773f1ab7fdb8c9b53","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3-6","gmt_create":"2026-05-27T18:35:41.7907502+08:00","gmt_modified":"2026-05-27T18:35:41.7907502+08:00"},{"id":168,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"8d92ac14c6257462a15eb6990dd44596","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/model.go#5-14","gmt_create":"2026-05-27T18:35:41.7923122+08:00","gmt_modified":"2026-05-27T18:35:41.7923122+08:00"},{"id":169,"source_id":"e9902bfcef1f5908b5123648ae6b07c6","target_id":"8d92ac14c6257462a15eb6990dd44596","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5-14","gmt_create":"2026-05-27T18:35:41.7923122+08:00","gmt_modified":"2026-05-27T18:35:41.7923122+08:00"},{"id":170,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"8b134235408cf40b9d6351d54591b3c4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: sql/model.sql#34","gmt_create":"2026-05-27T18:35:41.7933596+08:00","gmt_modified":"2026-05-27T18:35:41.7933596+08:00"},{"id":171,"source_id":"c56e5254bd7f42350c5261822fa135bb","target_id":"8b134235408cf40b9d6351d54591b3c4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 34","gmt_create":"2026-05-27T18:35:41.7933596+08:00","gmt_modified":"2026-05-27T18:35:41.7933596+08:00"},{"id":172,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"62d02336da9111eec3c5696aabf71927","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/brand_cache.go#13-16","gmt_create":"2026-05-27T18:35:41.7954607+08:00","gmt_modified":"2026-05-27T18:35:41.7954607+08:00"},{"id":173,"source_id":"67d3253845127f03f1f9ebe3f6a6aaa3","target_id":"62d02336da9111eec3c5696aabf71927","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-16","gmt_create":"2026-05-27T18:35:41.7959791+08:00","gmt_modified":"2026-05-27T18:35:41.7959791+08:00"},{"id":174,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"a60ecb63d9ab3bda0c5042f26916def3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/model_cache.go#13-16","gmt_create":"2026-05-27T18:35:41.7959791+08:00","gmt_modified":"2026-05-27T18:35:41.7959791+08:00"},{"id":175,"source_id":"018b14cbce05561cfb50fe7e6e3835a3","target_id":"a60ecb63d9ab3bda0c5042f26916def3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-16","gmt_create":"2026-05-27T18:35:41.7959791+08:00","gmt_modified":"2026-05-27T18:35:41.7959791+08:00"},{"id":176,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"5859dc43ab95b589fc2cada49ab59a86","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: go.mod#5-11","gmt_create":"2026-05-27T18:35:41.7965008+08:00","gmt_modified":"2026-05-27T18:35:41.7965008+08:00"},{"id":177,"source_id":"47165ac2566e8b2d3796014bdb75361f","target_id":"5859dc43ab95b589fc2cada49ab59a86","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5-11","gmt_create":"2026-05-27T18:35:41.7970218+08:00","gmt_modified":"2026-05-27T18:35:41.7970218+08:00"},{"id":178,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"dcc3acd0529002f62657a37922318e37","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: cmd/server/main.go#25-69","gmt_create":"2026-05-27T18:35:41.7976793+08:00","gmt_modified":"2026-05-27T18:35:41.7976793+08:00"},{"id":179,"source_id":"fd613068059c593ac4df9eaef2918055","target_id":"dcc3acd0529002f62657a37922318e37","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 25-69","gmt_create":"2026-05-27T18:35:41.7976793+08:00","gmt_modified":"2026-05-27T18:35:41.7976793+08:00"},{"id":180,"source_id":"599c0bda-3332-415c-a535-362503079473","target_id":"99ead368ce42f1081e05c800c65b176f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/database/mysql.go#33-43","gmt_create":"2026-05-27T18:35:41.8014731+08:00","gmt_modified":"2026-05-27T18:35:41.8014731+08:00"},{"id":181,"source_id":"0b4d10e2e0a550819cadaa7dbef9ecd1","target_id":"99ead368ce42f1081e05c800c65b176f","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 33-43","gmt_create":"2026-05-27T18:35:41.802505+08:00","gmt_modified":"2026-05-27T18:35:41.802505+08:00"},{"id":182,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"4d2b98c1d0a7fa8cf9725fb65019ae0e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/handler/brand.go","gmt_create":"2026-05-27T18:35:49.7836872+08:00","gmt_modified":"2026-05-27T18:35:49.7836872+08:00"},{"id":183,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"b18d19ca2c60406b9cd28010df12296d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/handler/model.go","gmt_create":"2026-05-27T18:35:49.7836872+08:00","gmt_modified":"2026-05-27T18:35:49.7836872+08:00"},{"id":184,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"75f8ef5ebd7eeb0cf2346b392f877e1a","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/handler/model_list.go","gmt_create":"2026-05-27T18:35:49.7836872+08:00","gmt_modified":"2026-05-27T18:35:49.7836872+08:00"},{"id":185,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"3a1babcf090301072327433866c0d7d0","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/handler/device.go","gmt_create":"2026-05-27T18:35:49.784717+08:00","gmt_modified":"2026-05-27T18:35:49.784717+08:00"},{"id":186,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"a7b9800e6fc68baa0cfda9c8f327b423","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/handler/health.go","gmt_create":"2026-05-27T18:35:49.784717+08:00","gmt_modified":"2026-05-27T18:35:49.784717+08:00"},{"id":187,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"276b4d58e492bc3f7c258914abb959e4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/repository/brand.go","gmt_create":"2026-05-27T18:35:49.784717+08:00","gmt_modified":"2026-05-27T18:35:49.784717+08:00"},{"id":188,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"4ca752eb084c575a36939921aeeb9984","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/repository/model.go","gmt_create":"2026-05-27T18:35:49.784717+08:00","gmt_modified":"2026-05-27T18:35:49.784717+08:00"},{"id":189,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"703706c059a41213d3dbfbddc03fab12","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/response/response.go","gmt_create":"2026-05-27T18:35:49.784717+08:00","gmt_modified":"2026-05-27T18:35:49.784717+08:00"},{"id":190,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"80d716769cf67cd05b504a3bc0a06a92","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: pkg/encode/base64.go","gmt_create":"2026-05-27T18:35:49.784717+08:00","gmt_modified":"2026-05-27T18:35:49.784717+08:00"},{"id":191,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"a1ff50cc5809d0d712db343ab0befe3b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/search/meilisearch.go","gmt_create":"2026-05-27T18:35:49.784717+08:00","gmt_modified":"2026-05-27T18:35:49.784717+08:00"},{"id":192,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"d2654fb48612d74ab0ccc06a3aede80b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/router/router.go","gmt_create":"2026-05-27T18:35:49.7862502+08:00","gmt_modified":"2026-05-27T18:35:49.7862502+08:00"},{"id":193,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"fd613068059c593ac4df9eaef2918055","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: cmd/server/main.go","gmt_create":"2026-05-27T18:35:49.7862502+08:00","gmt_modified":"2026-05-27T18:35:49.7862502+08:00"},{"id":194,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"0bba4121c12e2cf427dc805016fade40","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/config/config.go","gmt_create":"2026-05-27T18:35:49.7862502+08:00","gmt_modified":"2026-05-27T18:35:49.7862502+08:00"},{"id":195,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"f8a733666ceab6a73ba2bf3234e91222","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/middleware/logger.go","gmt_create":"2026-05-27T18:35:49.7862502+08:00","gmt_modified":"2026-05-27T18:35:49.7862502+08:00"},{"id":196,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"336527cad207564e9ea86fcc4e0ec240","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/middleware/cors.go","gmt_create":"2026-05-27T18:35:49.7862502+08:00","gmt_modified":"2026-05-27T18:35:49.7862502+08:00"},{"id":197,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"2ba2f740fa3334f7c6d51f74470ec4b7","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/middleware/request_id.go","gmt_create":"2026-05-27T18:35:49.7872716+08:00","gmt_modified":"2026-05-27T18:35:49.7872716+08:00"},{"id":198,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"6e3fd9bdc8a1ccaaa905d91772ecca2c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/brand.go","gmt_create":"2026-05-27T18:35:49.7872716+08:00","gmt_modified":"2026-05-27T18:35:49.7872716+08:00"},{"id":199,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"e9902bfcef1f5908b5123648ae6b07c6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/model.go","gmt_create":"2026-05-27T18:35:49.7872716+08:00","gmt_modified":"2026-05-27T18:35:49.7872716+08:00"},{"id":200,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"67d3253845127f03f1f9ebe3f6a6aaa3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/cache/brand_cache.go","gmt_create":"2026-05-27T18:35:49.7872716+08:00","gmt_modified":"2026-05-27T18:35:49.7872716+08:00"},{"id":201,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"018b14cbce05561cfb50fe7e6e3835a3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/cache/model_cache.go","gmt_create":"2026-05-27T18:35:49.7872716+08:00","gmt_modified":"2026-05-27T18:35:49.7872716+08:00"},{"id":202,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"a0b3e000a5b789bf08d2d996fc17d8df","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: cmd/server/main.go#25-101","gmt_create":"2026-05-27T18:35:49.7872716+08:00","gmt_modified":"2026-05-27T18:35:49.7872716+08:00"},{"id":203,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"333405ee9924108619cd8443f735d754","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/router/router.go#16-52","gmt_create":"2026-05-27T18:35:49.7872716+08:00","gmt_modified":"2026-05-27T18:35:49.7872716+08:00"},{"id":204,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"a5fb1691af5646ea8b4306ae97288e36","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/health.go#10","gmt_create":"2026-05-27T18:35:49.7872716+08:00","gmt_modified":"2026-05-27T18:35:49.7872716+08:00"},{"id":205,"source_id":"a7b9800e6fc68baa0cfda9c8f327b423","target_id":"a5fb1691af5646ea8b4306ae97288e36","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 10","gmt_create":"2026-05-27T18:35:49.7892834+08:00","gmt_modified":"2026-05-27T18:35:49.7892834+08:00"},{"id":206,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"de87fa33e6add38c027478dd3d0cebda","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/brand.go#18","gmt_create":"2026-05-27T18:35:49.7892834+08:00","gmt_modified":"2026-05-27T18:35:49.7892834+08:00"},{"id":207,"source_id":"4d2b98c1d0a7fa8cf9725fb65019ae0e","target_id":"de87fa33e6add38c027478dd3d0cebda","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 18","gmt_create":"2026-05-27T18:35:49.7892834+08:00","gmt_modified":"2026-05-27T18:35:49.7892834+08:00"},{"id":208,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"09427d743a4be750f874418ab3e8504d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/model.go#18","gmt_create":"2026-05-27T18:35:49.7892834+08:00","gmt_modified":"2026-05-27T18:35:49.7892834+08:00"},{"id":209,"source_id":"b18d19ca2c60406b9cd28010df12296d","target_id":"09427d743a4be750f874418ab3e8504d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 18","gmt_create":"2026-05-27T18:35:49.7892834+08:00","gmt_modified":"2026-05-27T18:35:49.7892834+08:00"},{"id":210,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"9ebb4688793526b520ec263ebf651be7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/model_list.go#19","gmt_create":"2026-05-27T18:35:49.7892834+08:00","gmt_modified":"2026-05-27T18:35:49.7892834+08:00"},{"id":211,"source_id":"75f8ef5ebd7eeb0cf2346b392f877e1a","target_id":"9ebb4688793526b520ec263ebf651be7","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 19","gmt_create":"2026-05-27T18:35:49.7892834+08:00","gmt_modified":"2026-05-27T18:35:49.7892834+08:00"},{"id":212,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"5e813130e7885527f77be92dbbaee9b6","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/device.go#19","gmt_create":"2026-05-27T18:35:49.7892834+08:00","gmt_modified":"2026-05-27T18:35:49.7892834+08:00"},{"id":213,"source_id":"3a1babcf090301072327433866c0d7d0","target_id":"5e813130e7885527f77be92dbbaee9b6","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 19","gmt_create":"2026-05-27T18:35:49.7892834+08:00","gmt_modified":"2026-05-27T18:35:49.7892834+08:00"},{"id":214,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"1992aa29a2869c31fe69ac701541c6ff","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/health.go#8-19","gmt_create":"2026-05-27T18:35:49.7913083+08:00","gmt_modified":"2026-05-27T18:35:49.7913083+08:00"},{"id":215,"source_id":"a7b9800e6fc68baa0cfda9c8f327b423","target_id":"1992aa29a2869c31fe69ac701541c6ff","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 8-19","gmt_create":"2026-05-27T18:35:49.7913083+08:00","gmt_modified":"2026-05-27T18:35:49.7913083+08:00"},{"id":216,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"692a2c6d49d4eb62f58600908dff9f60","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/brand.go#13-23","gmt_create":"2026-05-27T18:35:49.7913083+08:00","gmt_modified":"2026-05-27T18:35:49.7913083+08:00"},{"id":217,"source_id":"4d2b98c1d0a7fa8cf9725fb65019ae0e","target_id":"692a2c6d49d4eb62f58600908dff9f60","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-23","gmt_create":"2026-05-27T18:35:49.7913083+08:00","gmt_modified":"2026-05-27T18:35:49.7913083+08:00"},{"id":218,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"c9df5e7b8533af65ce97cf085b6589a9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/model.go#13-23","gmt_create":"2026-05-27T18:35:49.7913083+08:00","gmt_modified":"2026-05-27T18:35:49.7913083+08:00"},{"id":219,"source_id":"b18d19ca2c60406b9cd28010df12296d","target_id":"c9df5e7b8533af65ce97cf085b6589a9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-23","gmt_create":"2026-05-27T18:35:49.7913083+08:00","gmt_modified":"2026-05-27T18:35:49.7913083+08:00"},{"id":220,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"d2fd0586bf019047d2adbcdf90e09224","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/model_list.go#14-24","gmt_create":"2026-05-27T18:35:49.7913083+08:00","gmt_modified":"2026-05-27T18:35:49.7913083+08:00"},{"id":221,"source_id":"75f8ef5ebd7eeb0cf2346b392f877e1a","target_id":"d2fd0586bf019047d2adbcdf90e09224","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-24","gmt_create":"2026-05-27T18:35:49.7933132+08:00","gmt_modified":"2026-05-27T18:35:49.7933132+08:00"},{"id":222,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"bf1f0d1dece713e866e4a46be7784473","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/device.go#14-24","gmt_create":"2026-05-27T18:35:49.7933132+08:00","gmt_modified":"2026-05-27T18:35:49.7933132+08:00"},{"id":223,"source_id":"3a1babcf090301072327433866c0d7d0","target_id":"bf1f0d1dece713e866e4a46be7784473","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-24","gmt_create":"2026-05-27T18:35:49.7933132+08:00","gmt_modified":"2026-05-27T18:35:49.7933132+08:00"},{"id":224,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"c600af69dac497c7cf059a4bb2f033fc","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/router/router.go#32-36","gmt_create":"2026-05-27T18:35:49.7933132+08:00","gmt_modified":"2026-05-27T18:35:49.7933132+08:00"},{"id":225,"source_id":"d2654fb48612d74ab0ccc06a3aede80b","target_id":"c600af69dac497c7cf059a4bb2f033fc","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 32-36","gmt_create":"2026-05-27T18:35:49.7933132+08:00","gmt_modified":"2026-05-27T18:35:49.7933132+08:00"},{"id":226,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"bc6f53b403231c0f908654d3fea2102a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/brand.go#29","gmt_create":"2026-05-27T18:35:49.7933132+08:00","gmt_modified":"2026-05-27T18:35:49.7933132+08:00"},{"id":227,"source_id":"4d2b98c1d0a7fa8cf9725fb65019ae0e","target_id":"bc6f53b403231c0f908654d3fea2102a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 29","gmt_create":"2026-05-27T18:35:49.7948171+08:00","gmt_modified":"2026-05-27T18:35:49.7948171+08:00"},{"id":228,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"7b39881baafeaea08adce31120b7c1e1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/model.go#30","gmt_create":"2026-05-27T18:35:49.7948171+08:00","gmt_modified":"2026-05-27T18:35:49.7948171+08:00"},{"id":229,"source_id":"b18d19ca2c60406b9cd28010df12296d","target_id":"7b39881baafeaea08adce31120b7c1e1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 30","gmt_create":"2026-05-27T18:35:49.7948171+08:00","gmt_modified":"2026-05-27T18:35:49.7948171+08:00"},{"id":230,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"dbe385204072d26c84bf169842961690","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/model_list.go#37","gmt_create":"2026-05-27T18:35:49.7948171+08:00","gmt_modified":"2026-05-27T18:35:49.7948171+08:00"},{"id":231,"source_id":"75f8ef5ebd7eeb0cf2346b392f877e1a","target_id":"dbe385204072d26c84bf169842961690","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 37","gmt_create":"2026-05-27T18:35:49.7948171+08:00","gmt_modified":"2026-05-27T18:35:49.7948171+08:00"},{"id":232,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"2a723ed48cd9855068a04da6a33cb5e4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/device.go#71","gmt_create":"2026-05-27T18:35:49.7948171+08:00","gmt_modified":"2026-05-27T18:35:49.7948171+08:00"},{"id":233,"source_id":"3a1babcf090301072327433866c0d7d0","target_id":"2a723ed48cd9855068a04da6a33cb5e4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 71","gmt_create":"2026-05-27T18:35:49.7948171+08:00","gmt_modified":"2026-05-27T18:35:49.7948171+08:00"},{"id":234,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"9918f39149aaf1f5c3ec03275d6e3673","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/brand.go#23-52","gmt_create":"2026-05-27T18:35:49.7948171+08:00","gmt_modified":"2026-05-27T18:35:49.7948171+08:00"},{"id":235,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"a19fb2ac137e43d92d2ef93e8d79f0a7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/model.go#23-79","gmt_create":"2026-05-27T18:35:49.7970098+08:00","gmt_modified":"2026-05-27T18:35:49.7970098+08:00"},{"id":236,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"d72b0eafdb65d1d946060cf944359251","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/search/meilisearch.go#22-45","gmt_create":"2026-05-27T18:35:49.7970098+08:00","gmt_modified":"2026-05-27T18:35:49.7970098+08:00"},{"id":237,"source_id":"a1ff50cc5809d0d712db343ab0befe3b","target_id":"d72b0eafdb65d1d946060cf944359251","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 22-45","gmt_create":"2026-05-27T18:35:49.7970098+08:00","gmt_modified":"2026-05-27T18:35:49.7970098+08:00"},{"id":238,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"fce5662f14aa6386a5036b5241e00b1c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/response/response.go#15-21","gmt_create":"2026-05-27T18:35:49.7970098+08:00","gmt_modified":"2026-05-27T18:35:49.7970098+08:00"},{"id":239,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"1eb8f107de13e2ad7eaed3bd6cf20a3a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/router/router.go#40","gmt_create":"2026-05-27T18:35:49.8048985+08:00","gmt_modified":"2026-05-27T18:35:49.8048985+08:00"},{"id":240,"source_id":"d2654fb48612d74ab0ccc06a3aede80b","target_id":"1eb8f107de13e2ad7eaed3bd6cf20a3a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 40","gmt_create":"2026-05-27T18:35:49.8048985+08:00","gmt_modified":"2026-05-27T18:35:49.8048985+08:00"},{"id":241,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"7e3954c3e70a9252de9cfdec52ed93c8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/brand.go#25-48","gmt_create":"2026-05-27T18:35:49.8048985+08:00","gmt_modified":"2026-05-27T18:35:49.8048985+08:00"},{"id":242,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"8b0db394a538b6652de2e6634277ad0f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/brand.go#14-21","gmt_create":"2026-05-27T18:35:49.8048985+08:00","gmt_modified":"2026-05-27T18:35:49.8048985+08:00"},{"id":243,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"72195f4e7a76b584cbdfbaba23db2a1a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/brand.go#3-7","gmt_create":"2026-05-27T18:35:49.8048985+08:00","gmt_modified":"2026-05-27T18:35:49.8048985+08:00"},{"id":244,"source_id":"6e3fd9bdc8a1ccaaa905d91772ecca2c","target_id":"72195f4e7a76b584cbdfbaba23db2a1a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3-7","gmt_create":"2026-05-27T18:35:49.8048985+08:00","gmt_modified":"2026-05-27T18:35:49.8048985+08:00"},{"id":245,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"3e3a148f4095f6d36c64b1cfb3d1702a","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/brand.go#13-48","gmt_create":"2026-05-27T18:35:49.8120366+08:00","gmt_modified":"2026-05-27T18:35:49.8120366+08:00"},{"id":246,"source_id":"4d2b98c1d0a7fa8cf9725fb65019ae0e","target_id":"3e3a148f4095f6d36c64b1cfb3d1702a","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-48","gmt_create":"2026-05-27T18:35:49.8120366+08:00","gmt_modified":"2026-05-27T18:35:49.8120366+08:00"},{"id":247,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"a6d16b8965ed7f207f19f8f915ad53a4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/model.go#25-49","gmt_create":"2026-05-27T18:35:49.8127781+08:00","gmt_modified":"2026-05-27T18:35:49.8127781+08:00"},{"id":248,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"03f26c7c55e18e6266ea8e543a032229","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/model.go#14-21","gmt_create":"2026-05-27T18:35:49.8127781+08:00","gmt_modified":"2026-05-27T18:35:49.8127781+08:00"},{"id":249,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"3c27d9274287839faa5269c34b98b6a9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/model/model.go#5-15","gmt_create":"2026-05-27T18:35:49.8127781+08:00","gmt_modified":"2026-05-27T18:35:49.8127781+08:00"},{"id":250,"source_id":"e9902bfcef1f5908b5123648ae6b07c6","target_id":"3c27d9274287839faa5269c34b98b6a9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 5-15","gmt_create":"2026-05-27T18:35:49.8127781+08:00","gmt_modified":"2026-05-27T18:35:49.8127781+08:00"},{"id":251,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"e0ca219542426b9141a89063f7052b0c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/model.go#13-49","gmt_create":"2026-05-27T18:35:49.8127781+08:00","gmt_modified":"2026-05-27T18:35:49.8127781+08:00"},{"id":252,"source_id":"b18d19ca2c60406b9cd28010df12296d","target_id":"e0ca219542426b9141a89063f7052b0c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-49","gmt_create":"2026-05-27T18:35:49.8127781+08:00","gmt_modified":"2026-05-27T18:35:49.8127781+08:00"},{"id":253,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"fce0c17d6c03e511c3afeaee662ad34f","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/model_list.go#26-56","gmt_create":"2026-05-27T18:35:49.8152938+08:00","gmt_modified":"2026-05-27T18:35:49.8152938+08:00"},{"id":254,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"270fee7aef8f38c42409050388865f6d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: pkg/encode/base64.go#35-51","gmt_create":"2026-05-27T18:35:49.8152938+08:00","gmt_modified":"2026-05-27T18:35:49.8152938+08:00"},{"id":255,"source_id":"80d716769cf67cd05b504a3bc0a06a92","target_id":"270fee7aef8f38c42409050388865f6d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 35-51","gmt_create":"2026-05-27T18:35:49.8152938+08:00","gmt_modified":"2026-05-27T18:35:49.8152938+08:00"},{"id":256,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"5db111a430cac488cabeb543494fb917","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/response/response.go#15-36","gmt_create":"2026-05-27T18:35:49.8152938+08:00","gmt_modified":"2026-05-27T18:35:49.8152938+08:00"},{"id":257,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"8cf065ea198e4e0d88af1863fcd6ac11","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/model_list.go#14-57","gmt_create":"2026-05-27T18:35:49.8152938+08:00","gmt_modified":"2026-05-27T18:35:49.8152938+08:00"},{"id":258,"source_id":"75f8ef5ebd7eeb0cf2346b392f877e1a","target_id":"8cf065ea198e4e0d88af1863fcd6ac11","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-57","gmt_create":"2026-05-27T18:35:49.8152938+08:00","gmt_modified":"2026-05-27T18:35:49.8152938+08:00"},{"id":259,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"d4bd0610a0ad3d8fd8d33ac5f4aa83b5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/device.go#26-84","gmt_create":"2026-05-27T18:35:49.8152938+08:00","gmt_modified":"2026-05-27T18:35:49.8152938+08:00"},{"id":260,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"b62090b5a8fe0cd95b332a46bb8eac3c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/device.go#14-85","gmt_create":"2026-05-27T18:35:49.8152938+08:00","gmt_modified":"2026-05-27T18:35:49.8152938+08:00"},{"id":261,"source_id":"3a1babcf090301072327433866c0d7d0","target_id":"b62090b5a8fe0cd95b332a46bb8eac3c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-85","gmt_create":"2026-05-27T18:35:49.8152938+08:00","gmt_modified":"2026-05-27T18:35:49.8152938+08:00"},{"id":262,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"3f830fae511ccf076a0f04192c9b4cbe","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: cmd/server/main.go#53-69","gmt_create":"2026-05-27T18:35:49.8152938+08:00","gmt_modified":"2026-05-27T18:35:49.8152938+08:00"},{"id":263,"source_id":"fd613068059c593ac4df9eaef2918055","target_id":"3f830fae511ccf076a0f04192c9b4cbe","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 53-69","gmt_create":"2026-05-27T18:35:49.8152938+08:00","gmt_modified":"2026-05-27T18:35:49.8152938+08:00"},{"id":264,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"d0f6f695e8187267487ad6b6fb8559b0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/router/router.go#16-36","gmt_create":"2026-05-27T18:35:49.8152938+08:00","gmt_modified":"2026-05-27T18:35:49.8152938+08:00"},{"id":265,"source_id":"d2654fb48612d74ab0ccc06a3aede80b","target_id":"d0f6f695e8187267487ad6b6fb8559b0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 16-36","gmt_create":"2026-05-27T18:35:49.8152938+08:00","gmt_modified":"2026-05-27T18:35:49.8152938+08:00"},{"id":266,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"8fab617bba600779abac7805723180a0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/brand_cache.go#18-24","gmt_create":"2026-05-27T18:35:49.8152938+08:00","gmt_modified":"2026-05-27T18:35:49.8152938+08:00"},{"id":267,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"006d91f2f5f75fd7cd586165c200ba98","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/model_cache.go#19-25","gmt_create":"2026-05-27T18:35:49.8152938+08:00","gmt_modified":"2026-05-27T18:35:49.8152938+08:00"},{"id":268,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"1b6991f54b135de9969d4b357dcce8e4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: cmd/server/main.go#67-70","gmt_create":"2026-05-27T18:35:49.8152938+08:00","gmt_modified":"2026-05-27T18:35:49.8152938+08:00"},{"id":269,"source_id":"fd613068059c593ac4df9eaef2918055","target_id":"1b6991f54b135de9969d4b357dcce8e4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 67-70","gmt_create":"2026-05-27T18:35:49.8152938+08:00","gmt_modified":"2026-05-27T18:35:49.8152938+08:00"},{"id":270,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"86ac1fc7361002fc5d2c9f7b9b1ea754","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/router/router.go#27-36","gmt_create":"2026-05-27T18:35:49.821585+08:00","gmt_modified":"2026-05-27T18:35:49.821585+08:00"},{"id":271,"source_id":"d2654fb48612d74ab0ccc06a3aede80b","target_id":"86ac1fc7361002fc5d2c9f7b9b1ea754","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 27-36","gmt_create":"2026-05-27T18:35:49.821585+08:00","gmt_modified":"2026-05-27T18:35:49.821585+08:00"},{"id":272,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"bdfbf7d6f851540dee549606f7aca9d4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/brand.go#19","gmt_create":"2026-05-27T18:35:49.821585+08:00","gmt_modified":"2026-05-27T18:35:49.821585+08:00"},{"id":273,"source_id":"276b4d58e492bc3f7c258914abb959e4","target_id":"bdfbf7d6f851540dee549606f7aca9d4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 19","gmt_create":"2026-05-27T18:35:49.821585+08:00","gmt_modified":"2026-05-27T18:35:49.821585+08:00"},{"id":274,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"ba4653c42534e9835fb3db39fbfd5c06","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/model.go#19","gmt_create":"2026-05-27T18:35:49.821585+08:00","gmt_modified":"2026-05-27T18:35:49.821585+08:00"},{"id":275,"source_id":"4ca752eb084c575a36939921aeeb9984","target_id":"ba4653c42534e9835fb3db39fbfd5c06","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 19","gmt_create":"2026-05-27T18:35:49.8235965+08:00","gmt_modified":"2026-05-27T18:35:49.8235965+08:00"},{"id":276,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"e5c6898e570c67346c0858cfeaa98fae","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/search/meilisearch.go#17","gmt_create":"2026-05-27T18:35:49.8235965+08:00","gmt_modified":"2026-05-27T18:35:49.8235965+08:00"},{"id":277,"source_id":"a1ff50cc5809d0d712db343ab0befe3b","target_id":"e5c6898e570c67346c0858cfeaa98fae","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 17","gmt_create":"2026-05-27T18:35:49.8235965+08:00","gmt_modified":"2026-05-27T18:35:49.8235965+08:00"},{"id":278,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"90b60f9dc283b0c2610ad113bc211315","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: pkg/encode/base64.go#8","gmt_create":"2026-05-27T18:35:49.8235965+08:00","gmt_modified":"2026-05-27T18:35:49.8235965+08:00"},{"id":279,"source_id":"80d716769cf67cd05b504a3bc0a06a92","target_id":"90b60f9dc283b0c2610ad113bc211315","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 8","gmt_create":"2026-05-27T18:35:49.8235965+08:00","gmt_modified":"2026-05-27T18:35:49.8235965+08:00"},{"id":280,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"85820118c846a111e112dc705c071116","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/response/response.go#9","gmt_create":"2026-05-27T18:35:49.8235965+08:00","gmt_modified":"2026-05-27T18:35:49.8235965+08:00"},{"id":281,"source_id":"703706c059a41213d3dbfbddc03fab12","target_id":"85820118c846a111e112dc705c071116","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 9","gmt_create":"2026-05-27T18:35:49.8235965+08:00","gmt_modified":"2026-05-27T18:35:49.8235965+08:00"},{"id":282,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"491bd71f42db0fd5bf1d4851b9c4aaa9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/health.go#14-18","gmt_create":"2026-05-27T18:35:49.8256014+08:00","gmt_modified":"2026-05-27T18:35:49.8256014+08:00"},{"id":283,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"1041284bd46edf16a19f024c113d10b4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/brand.go#30-34","gmt_create":"2026-05-27T18:35:49.8256014+08:00","gmt_modified":"2026-05-27T18:35:49.8256014+08:00"},{"id":284,"source_id":"4d2b98c1d0a7fa8cf9725fb65019ae0e","target_id":"1041284bd46edf16a19f024c113d10b4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 30-34","gmt_create":"2026-05-27T18:35:49.8256014+08:00","gmt_modified":"2026-05-27T18:35:49.8256014+08:00"},{"id":285,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"84be9fdffe58ef8cd5e77e0d3c37313b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/model.go#31-35","gmt_create":"2026-05-27T18:35:49.8256014+08:00","gmt_modified":"2026-05-27T18:35:49.8256014+08:00"},{"id":286,"source_id":"b18d19ca2c60406b9cd28010df12296d","target_id":"84be9fdffe58ef8cd5e77e0d3c37313b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 31-35","gmt_create":"2026-05-27T18:35:49.8256014+08:00","gmt_modified":"2026-05-27T18:35:49.8256014+08:00"},{"id":287,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"f034e5c72872862a675dd11e32404854","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/model_list.go#38-42","gmt_create":"2026-05-27T18:35:49.8256014+08:00","gmt_modified":"2026-05-27T18:35:49.8256014+08:00"},{"id":288,"source_id":"75f8ef5ebd7eeb0cf2346b392f877e1a","target_id":"f034e5c72872862a675dd11e32404854","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 38-42","gmt_create":"2026-05-27T18:35:49.827349+08:00","gmt_modified":"2026-05-27T18:35:49.827349+08:00"},{"id":289,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"df50e47a5b6541093011bb59b1ec831d","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/device.go#61-78","gmt_create":"2026-05-27T18:35:49.827349+08:00","gmt_modified":"2026-05-27T18:35:49.827349+08:00"},{"id":290,"source_id":"3a1babcf090301072327433866c0d7d0","target_id":"df50e47a5b6541093011bb59b1ec831d","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 61-78","gmt_create":"2026-05-27T18:35:49.827349+08:00","gmt_modified":"2026-05-27T18:35:49.827349+08:00"},{"id":291,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"0a425d8fed248deb7202bc7e8d531ca1","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/middleware/logger.go#10-45","gmt_create":"2026-05-27T18:35:49.827349+08:00","gmt_modified":"2026-05-27T18:35:49.827349+08:00"},{"id":292,"source_id":"f8a733666ceab6a73ba2bf3234e91222","target_id":"0a425d8fed248deb7202bc7e8d531ca1","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 10-45","gmt_create":"2026-05-27T18:35:49.827349+08:00","gmt_modified":"2026-05-27T18:35:49.827349+08:00"},{"id":293,"source_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","target_id":"d6d27b00ae4ab42348e74a7e7bf688b2","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/middleware/request_id.go#20-31","gmt_create":"2026-05-27T18:35:49.827349+08:00","gmt_modified":"2026-05-27T18:35:49.827349+08:00"},{"id":294,"source_id":"2ba2f740fa3334f7c6d51f74470ec4b7","target_id":"d6d27b00ae4ab42348e74a7e7bf688b2","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 20-31","gmt_create":"2026-05-27T18:35:49.827349+08:00","gmt_modified":"2026-05-27T18:35:49.827349+08:00"},{"id":295,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"fd613068059c593ac4df9eaef2918055","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: cmd/server/main.go","gmt_create":"2026-05-27T18:36:40.5191825+08:00","gmt_modified":"2026-05-27T18:36:40.5191825+08:00"},{"id":296,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"67d3253845127f03f1f9ebe3f6a6aaa3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/cache/brand_cache.go","gmt_create":"2026-05-27T18:36:40.5191825+08:00","gmt_modified":"2026-05-27T18:36:40.5191825+08:00"},{"id":297,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"018b14cbce05561cfb50fe7e6e3835a3","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/cache/model_cache.go","gmt_create":"2026-05-27T18:36:40.5198012+08:00","gmt_modified":"2026-05-27T18:36:40.5198012+08:00"},{"id":298,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"7bfaa93c0d23eed2727039a5bd3d9a07","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/cache/redis.go","gmt_create":"2026-05-27T18:36:40.5203298+08:00","gmt_modified":"2026-05-27T18:36:40.5203298+08:00"},{"id":299,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"0bba4121c12e2cf427dc805016fade40","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/config/config.go","gmt_create":"2026-05-27T18:36:40.5203298+08:00","gmt_modified":"2026-05-27T18:36:40.5203298+08:00"},{"id":300,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"ac542a8b31381c132de78b921e3216d4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/config/redis.go","gmt_create":"2026-05-27T18:36:40.5208694+08:00","gmt_modified":"2026-05-27T18:36:40.5208694+08:00"},{"id":301,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"d2654fb48612d74ab0ccc06a3aede80b","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/router/router.go","gmt_create":"2026-05-27T18:36:40.5214036+08:00","gmt_modified":"2026-05-27T18:36:40.5214036+08:00"},{"id":302,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"276b4d58e492bc3f7c258914abb959e4","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/repository/brand.go","gmt_create":"2026-05-27T18:36:40.5214036+08:00","gmt_modified":"2026-05-27T18:36:40.5214036+08:00"},{"id":303,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"4ca752eb084c575a36939921aeeb9984","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/repository/model.go","gmt_create":"2026-05-27T18:36:40.5219307+08:00","gmt_modified":"2026-05-27T18:36:40.5219307+08:00"},{"id":304,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"4d2b98c1d0a7fa8cf9725fb65019ae0e","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/handler/brand.go","gmt_create":"2026-05-27T18:36:40.5219307+08:00","gmt_modified":"2026-05-27T18:36:40.5219307+08:00"},{"id":305,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"b18d19ca2c60406b9cd28010df12296d","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/handler/model.go","gmt_create":"2026-05-27T18:36:40.5224739+08:00","gmt_modified":"2026-05-27T18:36:40.5224739+08:00"},{"id":306,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"6e3fd9bdc8a1ccaaa905d91772ecca2c","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/brand.go","gmt_create":"2026-05-27T18:36:40.5224739+08:00","gmt_modified":"2026-05-27T18:36:40.5224739+08:00"},{"id":307,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"e9902bfcef1f5908b5123648ae6b07c6","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: internal/model/model.go","gmt_create":"2026-05-27T18:36:40.5230612+08:00","gmt_modified":"2026-05-27T18:36:40.5230612+08:00"},{"id":308,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"47165ac2566e8b2d3796014bdb75361f","source_type":"WIKI_ITEM","target_type":"SOURCE_FILE","relationship_type":"REFERENCED_BY","extra":"Wiki references source file: go.mod","gmt_create":"2026-05-27T18:36:40.5230612+08:00","gmt_modified":"2026-05-27T18:36:40.5230612+08:00"},{"id":309,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"e9390185152783a55f55e277d45e6948","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: cmd/server/main.go#25-131","gmt_create":"2026-05-27T18:36:40.5235889+08:00","gmt_modified":"2026-05-27T18:36:40.5235889+08:00"},{"id":310,"source_id":"fd613068059c593ac4df9eaef2918055","target_id":"e9390185152783a55f55e277d45e6948","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 25-131","gmt_create":"2026-05-27T18:36:40.5235889+08:00","gmt_modified":"2026-05-27T18:36:40.5235889+08:00"},{"id":311,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"a3cbc373dacd9d032ed0c72bca1e51e9","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/brand_cache.go#1-45","gmt_create":"2026-05-27T18:36:40.5241608+08:00","gmt_modified":"2026-05-27T18:36:40.5241608+08:00"},{"id":312,"source_id":"67d3253845127f03f1f9ebe3f6a6aaa3","target_id":"a3cbc373dacd9d032ed0c72bca1e51e9","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-45","gmt_create":"2026-05-27T18:36:40.5246891+08:00","gmt_modified":"2026-05-27T18:36:40.5246891+08:00"},{"id":313,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"d65e653afb8b211f2e5a7845f72b45dd","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/model_cache.go#1-70","gmt_create":"2026-05-27T18:36:40.5246891+08:00","gmt_modified":"2026-05-27T18:36:40.5246891+08:00"},{"id":314,"source_id":"018b14cbce05561cfb50fe7e6e3835a3","target_id":"d65e653afb8b211f2e5a7845f72b45dd","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-70","gmt_create":"2026-05-27T18:36:40.5252193+08:00","gmt_modified":"2026-05-27T18:36:40.5252193+08:00"},{"id":315,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"a26d903ac77196fac97ddebf48638ab3","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/brand.go#1-100","gmt_create":"2026-05-27T18:36:40.5252193+08:00","gmt_modified":"2026-05-27T18:36:40.5252193+08:00"},{"id":316,"source_id":"276b4d58e492bc3f7c258914abb959e4","target_id":"a26d903ac77196fac97ddebf48638ab3","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-100","gmt_create":"2026-05-27T18:36:40.5257547+08:00","gmt_modified":"2026-05-27T18:36:40.5257547+08:00"},{"id":317,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"7ffaf7b06ea96ca93862aa0dae926ff5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/model.go#1-181","gmt_create":"2026-05-27T18:36:40.5257547+08:00","gmt_modified":"2026-05-27T18:36:40.5257547+08:00"},{"id":318,"source_id":"4ca752eb084c575a36939921aeeb9984","target_id":"7ffaf7b06ea96ca93862aa0dae926ff5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 1-181","gmt_create":"2026-05-27T18:36:40.5263036+08:00","gmt_modified":"2026-05-27T18:36:40.5263036+08:00"},{"id":319,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"187b4628003859e3da78f3937c686803","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/brand_cache.go#18-45","gmt_create":"2026-05-27T18:36:40.5278728+08:00","gmt_modified":"2026-05-27T18:36:40.5278728+08:00"},{"id":320,"source_id":"67d3253845127f03f1f9ebe3f6a6aaa3","target_id":"187b4628003859e3da78f3937c686803","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 18-45","gmt_create":"2026-05-27T18:36:40.5278728+08:00","gmt_modified":"2026-05-27T18:36:40.5278728+08:00"},{"id":321,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"a6c526ea58aabee86ae3010b00441c69","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/model_cache.go#19-70","gmt_create":"2026-05-27T18:36:40.5283937+08:00","gmt_modified":"2026-05-27T18:36:40.5283937+08:00"},{"id":322,"source_id":"018b14cbce05561cfb50fe7e6e3835a3","target_id":"a6c526ea58aabee86ae3010b00441c69","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 19-70","gmt_create":"2026-05-27T18:36:40.5283937+08:00","gmt_modified":"2026-05-27T18:36:40.5283937+08:00"},{"id":323,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"a364a8daa183eaf86417b4c1bd2cc719","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/brand.go#14-100","gmt_create":"2026-05-27T18:36:40.5289418+08:00","gmt_modified":"2026-05-27T18:36:40.5289418+08:00"},{"id":324,"source_id":"276b4d58e492bc3f7c258914abb959e4","target_id":"a364a8daa183eaf86417b4c1bd2cc719","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-100","gmt_create":"2026-05-27T18:36:40.5289418+08:00","gmt_modified":"2026-05-27T18:36:40.5289418+08:00"},{"id":325,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"2e040aabeb8e907eaddc6bbf2ee493ac","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/model.go#14-181","gmt_create":"2026-05-27T18:36:40.5294767+08:00","gmt_modified":"2026-05-27T18:36:40.5294767+08:00"},{"id":326,"source_id":"4ca752eb084c575a36939921aeeb9984","target_id":"2e040aabeb8e907eaddc6bbf2ee493ac","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 14-181","gmt_create":"2026-05-27T18:36:40.5294767+08:00","gmt_modified":"2026-05-27T18:36:40.5294767+08:00"},{"id":327,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"3d315320639ece8212fd138420d94be5","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/brand.go#13-49","gmt_create":"2026-05-27T18:36:40.5294767+08:00","gmt_modified":"2026-05-27T18:36:40.5294767+08:00"},{"id":328,"source_id":"4d2b98c1d0a7fa8cf9725fb65019ae0e","target_id":"3d315320639ece8212fd138420d94be5","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-49","gmt_create":"2026-05-27T18:36:40.5294767+08:00","gmt_modified":"2026-05-27T18:36:40.5294767+08:00"},{"id":329,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"fbf36e29345cd3e53fd3a6e8234ad2de","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/model.go#13-50","gmt_create":"2026-05-27T18:36:40.5304957+08:00","gmt_modified":"2026-05-27T18:36:40.5304957+08:00"},{"id":330,"source_id":"b18d19ca2c60406b9cd28010df12296d","target_id":"fbf36e29345cd3e53fd3a6e8234ad2de","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-50","gmt_create":"2026-05-27T18:36:40.5304957+08:00","gmt_modified":"2026-05-27T18:36:40.5304957+08:00"},{"id":331,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"9918f39149aaf1f5c3ec03275d6e3673","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/brand.go#23-52","gmt_create":"2026-05-27T18:36:40.5304957+08:00","gmt_modified":"2026-05-27T18:36:40.5304957+08:00"},{"id":332,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"a19fb2ac137e43d92d2ef93e8d79f0a7","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/model.go#23-79","gmt_create":"2026-05-27T18:36:40.5304957+08:00","gmt_modified":"2026-05-27T18:36:40.5304957+08:00"},{"id":333,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"32b7267a28b0347d59500c38ffa96a7b","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/brand_cache.go#13-45","gmt_create":"2026-05-27T18:36:40.5320145+08:00","gmt_modified":"2026-05-27T18:36:40.5320145+08:00"},{"id":334,"source_id":"67d3253845127f03f1f9ebe3f6a6aaa3","target_id":"32b7267a28b0347d59500c38ffa96a7b","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-45","gmt_create":"2026-05-27T18:36:40.5320145+08:00","gmt_modified":"2026-05-27T18:36:40.5320145+08:00"},{"id":335,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"b9c3c517ffd917351757137ca1338574","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/model_cache.go#27-69","gmt_create":"2026-05-27T18:36:40.5320145+08:00","gmt_modified":"2026-05-27T18:36:40.5320145+08:00"},{"id":336,"source_id":"018b14cbce05561cfb50fe7e6e3835a3","target_id":"b9c3c517ffd917351757137ca1338574","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 27-69","gmt_create":"2026-05-27T18:36:40.5320145+08:00","gmt_modified":"2026-05-27T18:36:40.5320145+08:00"},{"id":337,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"df7d264896976fc8c5475257994c707e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/model_cache.go#13-70","gmt_create":"2026-05-27T18:36:40.5320145+08:00","gmt_modified":"2026-05-27T18:36:40.5320145+08:00"},{"id":338,"source_id":"018b14cbce05561cfb50fe7e6e3835a3","target_id":"df7d264896976fc8c5475257994c707e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-70","gmt_create":"2026-05-27T18:36:40.5330386+08:00","gmt_modified":"2026-05-27T18:36:40.5330386+08:00"},{"id":339,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"a3b89d2e56d589f8d902fb9389004bf0","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: cmd/server/main.go#103-131","gmt_create":"2026-05-27T18:36:40.5330386+08:00","gmt_modified":"2026-05-27T18:36:40.5330386+08:00"},{"id":340,"source_id":"fd613068059c593ac4df9eaef2918055","target_id":"a3b89d2e56d589f8d902fb9389004bf0","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 103-131","gmt_create":"2026-05-27T18:36:40.5330386+08:00","gmt_modified":"2026-05-27T18:36:40.5330386+08:00"},{"id":341,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"f76ee32725201731512db1e0e7951586","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: cmd/server/main.go#67-68","gmt_create":"2026-05-27T18:36:40.5330386+08:00","gmt_modified":"2026-05-27T18:36:40.5330386+08:00"},{"id":342,"source_id":"fd613068059c593ac4df9eaef2918055","target_id":"f76ee32725201731512db1e0e7951586","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 67-68","gmt_create":"2026-05-27T18:36:40.5330386+08:00","gmt_modified":"2026-05-27T18:36:40.5330386+08:00"},{"id":343,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"251d1b1dc197a1dc242f5384adb1555c","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/brand.go#34-52","gmt_create":"2026-05-27T18:36:40.5330386+08:00","gmt_modified":"2026-05-27T18:36:40.5330386+08:00"},{"id":344,"source_id":"276b4d58e492bc3f7c258914abb959e4","target_id":"251d1b1dc197a1dc242f5384adb1555c","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 34-52","gmt_create":"2026-05-27T18:36:40.5350514+08:00","gmt_modified":"2026-05-27T18:36:40.5350514+08:00"},{"id":345,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"a51abc6a6d80413bf60f143cd1f46ee4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/model.go#27-79","gmt_create":"2026-05-27T18:36:40.5350514+08:00","gmt_modified":"2026-05-27T18:36:40.5350514+08:00"},{"id":346,"source_id":"4ca752eb084c575a36939921aeeb9984","target_id":"a51abc6a6d80413bf60f143cd1f46ee4","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 27-79","gmt_create":"2026-05-27T18:36:40.5350514+08:00","gmt_modified":"2026-05-27T18:36:40.5350514+08:00"},{"id":347,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"62d02336da9111eec3c5696aabf71927","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/brand_cache.go#13-16","gmt_create":"2026-05-27T18:36:40.5350514+08:00","gmt_modified":"2026-05-27T18:36:40.5350514+08:00"},{"id":348,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"f0b044854c85d50b2d1ba4b9d3e6a6cb","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/model_cache.go#13-17","gmt_create":"2026-05-27T18:36:40.5350514+08:00","gmt_modified":"2026-05-27T18:36:40.5350514+08:00"},{"id":349,"source_id":"018b14cbce05561cfb50fe7e6e3835a3","target_id":"f0b044854c85d50b2d1ba4b9d3e6a6cb","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-17","gmt_create":"2026-05-27T18:36:40.5350514+08:00","gmt_modified":"2026-05-27T18:36:40.5350514+08:00"},{"id":350,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"3f0d637bef43d636594a4816c9da037e","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/brand_cache.go#38-44","gmt_create":"2026-05-27T18:36:40.5371702+08:00","gmt_modified":"2026-05-27T18:36:40.5371702+08:00"},{"id":351,"source_id":"67d3253845127f03f1f9ebe3f6a6aaa3","target_id":"3f0d637bef43d636594a4816c9da037e","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 38-44","gmt_create":"2026-05-27T18:36:40.5371702+08:00","gmt_modified":"2026-05-27T18:36:40.5371702+08:00"},{"id":352,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"3f945faea776f513b5294aa60759fb15","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/cache/model_cache.go#43-69","gmt_create":"2026-05-27T18:36:40.5371702+08:00","gmt_modified":"2026-05-27T18:36:40.5371702+08:00"},{"id":353,"source_id":"018b14cbce05561cfb50fe7e6e3835a3","target_id":"3f945faea776f513b5294aa60759fb15","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 43-69","gmt_create":"2026-05-27T18:36:40.5371702+08:00","gmt_modified":"2026-05-27T18:36:40.5371702+08:00"},{"id":354,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"a272829cfc9c48e8063d8bca53cdebc8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: cmd/server/main.go#13-23","gmt_create":"2026-05-27T18:36:40.5371702+08:00","gmt_modified":"2026-05-27T18:36:40.5371702+08:00"},{"id":355,"source_id":"fd613068059c593ac4df9eaef2918055","target_id":"a272829cfc9c48e8063d8bca53cdebc8","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 13-23","gmt_create":"2026-05-27T18:36:40.5371702+08:00","gmt_modified":"2026-05-27T18:36:40.5371702+08:00"},{"id":356,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"6d2fece0c97147748fd0269a356e4802","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/repository/brand.go#3-12","gmt_create":"2026-05-27T18:36:40.5371702+08:00","gmt_modified":"2026-05-27T18:36:40.5371702+08:00"},{"id":357,"source_id":"276b4d58e492bc3f7c258914abb959e4","target_id":"6d2fece0c97147748fd0269a356e4802","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3-12","gmt_create":"2026-05-27T18:36:40.5371702+08:00","gmt_modified":"2026-05-27T18:36:40.5371702+08:00"},{"id":358,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"282a046f62f9715bfef882f5a4a6a362","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/router/router.go#3-14","gmt_create":"2026-05-27T18:36:40.5371702+08:00","gmt_modified":"2026-05-27T18:36:40.5371702+08:00"},{"id":359,"source_id":"d2654fb48612d74ab0ccc06a3aede80b","target_id":"282a046f62f9715bfef882f5a4a6a362","source_type":"SOURCE_FILE","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Source file contains code snippet: 3-14","gmt_create":"2026-05-27T18:36:40.5371702+08:00","gmt_modified":"2026-05-27T18:36:40.5371702+08:00"},{"id":360,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"7e3954c3e70a9252de9cfdec52ed93c8","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/brand.go#25-48","gmt_create":"2026-05-27T18:36:40.5405367+08:00","gmt_modified":"2026-05-27T18:36:40.5405367+08:00"},{"id":361,"source_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","target_id":"a6d16b8965ed7f207f19f8f915ad53a4","source_type":"WIKI_ITEM","target_type":"CODE_SNIPPET","relationship_type":"CONTAINS","extra":"Wiki contains code snippet: internal/handler/model.go#25-49","gmt_create":"2026-05-27T18:36:40.5405367+08:00","gmt_modified":"2026-05-27T18:36:40.5405367+08:00"},{"id":362,"source_id":"ab98c251-c5f7-40df-bba1-21b2edf5d220","target_id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: ab98c251-c5f7-40df-bba1-21b2edf5d220 -\u003e f4014d47-467e-4cfe-8549-1dfb69cbc325","gmt_create":"2026-05-27T18:36:41.1100061+08:00","gmt_modified":"2026-05-27T18:36:41.1100061+08:00"},{"id":363,"source_id":"7563e383-3ea0-4630-baeb-e86efcaeefb8","target_id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 7563e383-3ea0-4630-baeb-e86efcaeefb8 -\u003e d1a696b8-5a9e-4ad2-8777-04eecc0bb424","gmt_create":"2026-05-27T18:36:41.1111288+08:00","gmt_modified":"2026-05-27T18:36:41.1111288+08:00"},{"id":364,"source_id":"7563e383-3ea0-4630-baeb-e86efcaeefb8","target_id":"599c0bda-3332-415c-a535-362503079473","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: 7563e383-3ea0-4630-baeb-e86efcaeefb8 -\u003e 599c0bda-3332-415c-a535-362503079473","gmt_create":"2026-05-27T18:36:41.1116631+08:00","gmt_modified":"2026-05-27T18:36:41.1116631+08:00"},{"id":365,"source_id":"cfbcaa79-26f5-402f-8746-9fe524993684","target_id":"795a5202-49be-4c11-a2b4-44312eca8ae7","source_type":"WIKI_ITEM","target_type":"WIKI_ITEM","relationship_type":"PARENT_CHILD","extra":"Wiki parent-child relationship: cfbcaa79-26f5-402f-8746-9fe524993684 -\u003e 795a5202-49be-4c11-a2b4-44312eca8ae7","gmt_create":"2026-05-27T18:36:41.1121847+08:00","gmt_modified":"2026-05-27T18:36:41.1121847+08:00"}],"source_files":[{"id":"d2654fb48612d74ab0ccc06a3aede80b","path":"internal/router/router.go","filename":"router.go","gmt_create":"2026-05-27T18:35:29.8906012+08:00","gmt_modified":"2026-05-27T18:35:29.8906012+08:00"},{"id":"fd613068059c593ac4df9eaef2918055","path":"cmd/server/main.go","filename":"main.go","gmt_create":"2026-05-27T18:35:29.8906012+08:00","gmt_modified":"2026-05-27T18:35:29.8906012+08:00"},{"id":"336527cad207564e9ea86fcc4e0ec240","path":"internal/middleware/cors.go","filename":"cors.go","gmt_create":"2026-05-27T18:35:29.8912536+08:00","gmt_modified":"2026-05-27T18:35:29.8912536+08:00"},{"id":"f8a733666ceab6a73ba2bf3234e91222","path":"internal/middleware/logger.go","filename":"logger.go","gmt_create":"2026-05-27T18:35:29.8912536+08:00","gmt_modified":"2026-05-27T18:35:29.8912536+08:00"},{"id":"2ba2f740fa3334f7c6d51f74470ec4b7","path":"internal/middleware/request_id.go","filename":"request_id.go","gmt_create":"2026-05-27T18:35:29.8912536+08:00","gmt_modified":"2026-05-27T18:35:29.8912536+08:00"},{"id":"a7b9800e6fc68baa0cfda9c8f327b423","path":"internal/handler/health.go","filename":"health.go","gmt_create":"2026-05-27T18:35:29.8912536+08:00","gmt_modified":"2026-05-27T18:35:29.8912536+08:00"},{"id":"4d2b98c1d0a7fa8cf9725fb65019ae0e","path":"internal/handler/brand.go","filename":"brand.go","gmt_create":"2026-05-27T18:35:29.8912536+08:00","gmt_modified":"2026-05-27T18:35:29.8912536+08:00"},{"id":"b18d19ca2c60406b9cd28010df12296d","path":"internal/handler/model.go","filename":"model.go","gmt_create":"2026-05-27T18:35:29.8917986+08:00","gmt_modified":"2026-05-27T18:35:29.8917986+08:00"},{"id":"75f8ef5ebd7eeb0cf2346b392f877e1a","path":"internal/handler/model_list.go","filename":"model_list.go","gmt_create":"2026-05-27T18:35:29.8917986+08:00","gmt_modified":"2026-05-27T18:35:29.8917986+08:00"},{"id":"3a1babcf090301072327433866c0d7d0","path":"internal/handler/device.go","filename":"device.go","gmt_create":"2026-05-27T18:35:29.8917986+08:00","gmt_modified":"2026-05-27T18:35:29.8917986+08:00"},{"id":"703706c059a41213d3dbfbddc03fab12","path":"internal/response/response.go","filename":"response.go","gmt_create":"2026-05-27T18:35:29.8917986+08:00","gmt_modified":"2026-05-27T18:35:29.8917986+08:00"},{"id":"0bba4121c12e2cf427dc805016fade40","path":"internal/config/config.go","filename":"config.go","gmt_create":"2026-05-27T18:35:29.8917986+08:00","gmt_modified":"2026-05-27T18:35:29.8917986+08:00"},{"id":"80d716769cf67cd05b504a3bc0a06a92","path":"pkg/encode/base64.go","filename":"base64.go","gmt_create":"2026-05-27T18:35:29.8923362+08:00","gmt_modified":"2026-05-27T18:35:29.8923362+08:00"},{"id":"67d9f7c1be7ff64bb9bca0a5f2492621","path":"README.md","filename":"README.md","gmt_create":"2026-05-27T18:35:29.8923362+08:00","gmt_modified":"2026-05-27T18:35:29.8923362+08:00"},{"id":"7bfaa93c0d23eed2727039a5bd3d9a07","path":"internal/cache/redis.go","filename":"redis.go","gmt_create":"2026-05-27T18:35:29.8923362+08:00","gmt_modified":"2026-05-27T18:35:29.8923362+08:00"},{"id":"67d3253845127f03f1f9ebe3f6a6aaa3","path":"internal/cache/brand_cache.go","filename":"brand_cache.go","gmt_create":"2026-05-27T18:35:29.8923362+08:00","gmt_modified":"2026-05-27T18:35:29.8923362+08:00"},{"id":"018b14cbce05561cfb50fe7e6e3835a3","path":"internal/cache/model_cache.go","filename":"model_cache.go","gmt_create":"2026-05-27T18:35:29.8923362+08:00","gmt_modified":"2026-05-27T18:35:29.8923362+08:00"},{"id":"276b4d58e492bc3f7c258914abb959e4","path":"internal/repository/brand.go","filename":"brand.go","gmt_create":"2026-05-27T18:35:29.8923362+08:00","gmt_modified":"2026-05-27T18:35:29.8923362+08:00"},{"id":"4ca752eb084c575a36939921aeeb9984","path":"internal/repository/model.go","filename":"model.go","gmt_create":"2026-05-27T18:35:29.892946+08:00","gmt_modified":"2026-05-27T18:35:29.892946+08:00"},{"id":"ac542a8b31381c132de78b921e3216d4","path":"internal/config/redis.go","filename":"redis.go","gmt_create":"2026-05-27T18:35:29.892946+08:00","gmt_modified":"2026-05-27T18:35:29.892946+08:00"},{"id":"d2c7a50459a83c5ef23e809b0f194aba","path":"internal/config/meilisearch.go","filename":"meilisearch.go","gmt_create":"2026-05-27T18:35:29.892946+08:00","gmt_modified":"2026-05-27T18:35:29.892946+08:00"},{"id":"0b4d10e2e0a550819cadaa7dbef9ecd1","path":"internal/database/mysql.go","filename":"mysql.go","gmt_create":"2026-05-27T18:35:41.7298499+08:00","gmt_modified":"2026-05-27T18:35:41.7298499+08:00"},{"id":"a0a3a762dc85a8d8c5bb359f5c523def","path":"internal/config/database.go","filename":"database.go","gmt_create":"2026-05-27T18:35:41.7298499+08:00","gmt_modified":"2026-05-27T18:35:41.7298499+08:00"},{"id":"6e3fd9bdc8a1ccaaa905d91772ecca2c","path":"internal/model/brand.go","filename":"brand.go","gmt_create":"2026-05-27T18:35:41.7304145+08:00","gmt_modified":"2026-05-27T18:35:41.7304145+08:00"},{"id":"e9902bfcef1f5908b5123648ae6b07c6","path":"internal/model/model.go","filename":"model.go","gmt_create":"2026-05-27T18:35:41.7304145+08:00","gmt_modified":"2026-05-27T18:35:41.7304145+08:00"},{"id":"c56e5254bd7f42350c5261822fa135bb","path":"sql/model.sql","filename":"model.sql","gmt_create":"2026-05-27T18:35:41.7309531+08:00","gmt_modified":"2026-05-27T18:35:41.7309531+08:00"},{"id":"47165ac2566e8b2d3796014bdb75361f","path":"go.mod","filename":"go.mod","gmt_create":"2026-05-27T18:35:41.7309531+08:00","gmt_modified":"2026-05-27T18:35:41.7309531+08:00"},{"id":"a1ff50cc5809d0d712db343ab0befe3b","path":"internal/search/meilisearch.go","filename":"meilisearch.go","gmt_create":"2026-05-27T18:35:49.7652632+08:00","gmt_modified":"2026-05-27T18:35:49.7652632+08:00"}],"wiki_catalogs":[{"id":"78b906f9-f81c-4bb2-b076-5c5609c7eb41","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"项目概述","description":"project-overview","prompt":"为 Luxsin 应用 API 项目创建全面的项目概述内容。详细介绍项目的目标、核心功能和技术架构。解释这是一个基于 Gin 框架的 Go 语言 Web API 服务,专注于音频设备(耳机)数据管理。阐述项目的整体设计理念、分层架构模式和设计原则。包含技术栈概览(Go 1.22+、Gin、MySQL、Redis、Meilisearch),项目结构说明,以及与其他组件的关系。提供适合初学者的概念性介绍和面向经验丰富开发者的技术细节。使用与代码库一致的术语,展示常见使用场景的实际示例。","progress_status":"completed","dependent_files":"README.md,cmd/server/main.go,go.mod","gmt_create":"2026-05-27T15:42:25.0250549+08:00","gmt_modified":"2026-05-27T15:44:16.3667749+08:00","raw_data":"WikiEncrypted:0MI1/XkBoMl0lTbK6t0Cn/+8FdvqrJ62ianMLvZj02elJtBUgH0Ns0veIx1WPtM9wwkxI+/XAqHLxJLlHB8wV7ojrH0+b4JMz5OewwhBN1HmP/0rRww9hUnTCEZmNJO3yBTSwzDP2RxlM1vNSo2miB47OWpHJe/fbeK8YpuBtRbc1xpai4QWWh4AweGy0HEvW9apev3dOSAiTr8UoRTgRToJyEaxWrqZcs+MtHKRAsIrcUTt6ZOh39uAbnNwRxK9M2/DiD+kawezpj/AwiANKfd4KpHSMbzYKq9YTP0ksJkGEAjH/XwM331T75uP1oZ/psvBENTK57EgxUJQIxxl/qi9stybX0Smmey1LJ+iJDAfMqZYbs5BbkxPPLpvmXX8GX/lHaSvSv8bbbhTLnYiN+DawAvAhSIRex/qStKvjVXbzHUwrLiXLR5XSvCX75e6L5cIB4b+Mx86121DipgZvZjF7zEMzArfk0N5yZkwD5XI7a3kzfmH2BaXJoEdULrvDFX7ssODrPjklVgc2gbh9DYJXJ/eua5QA3Xx1lsmOuAQB7a98gCmD6wgY1fk9B5rsKGk7vjeRpn+VjuxS6i0t9dcHlhvXCrR7IAI7ElFcmatn18jtjyzt08iJ/2HJB3lwVKEHvC/D131ZrYoMax215Ho63ABv5IhWhlOacH3EHlX6kLvYaCiaCq7fkoW8IUfIUEJGPYMNiPdNXw8BHHJaE8Emy4eKyw7+C0K//+SPmGgkpVUXe5QBHZUCVde9qeHWFvjX7tIKhxv6DuRjUgaCTjlup8gJ49u24zpnUWcnA8qT/jl0wsGHfJi8eD0LLh0kE8XKQQ/x7QONSqCBwUYpVE0TaFITaD9jPqrfRmH7pcAVggsg7CrxVJKwukwntI7yyj4r0gvzmECsd41Q9FYOoPHu3IjRxN+OlXsp7yXlO8Bk3HtmqmpIVzy3rg5kNXkrwf98MEdjBWvI1SfpRXoliuppIkKLvshYbDq9zj7Gt5l1fDkWJrFTA59HAAa3qxQ1UvtlTV3x563VZo0DZofv2rHQaWxyL8gslH21B3jt1SClPzpPPC2ERp1waFgf/K6NltgqZg+qvCivqr8SOjn4ASj8olJuvcUYIqGIh4Glws6tboVkX7ItQuueGikKKhSflv4RIB28KosR6Y5EvB8oDFTNknPtjjj8fDMAdLye5AhzMlBtH3Ozvd7tR8DbP77ZPX3WIncMv8HHSXGmn8IwwggXYIKJ5fpuepkStOcJLSafRsijI2Jji/9y8ULNSvIJgGHlfsd+ytl0t8xFik3QfYqBtbBaYKauIWmP3opbaM="},{"id":"67d62b58-6970-45ca-a17f-f48cb2ea679a","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"业务处理器","description":"business-handlers","prompt":"为 Luxsin 应用 API 项目的业务处理器模块创建详细文档。深入解释各个处理器的职责分工、接口设计和实现细节。详细说明 BrandHandler、ModelHandler、ModelListHandler、DeviceHandler 和 HealthHandler 的具体功能和使用方法。包含依赖注入模式的实现、错误处理机制和响应格式化。提供具体的代码示例展示如何调用各个处理器,以及它们与 Gin 框架的集成方式。解释处理器之间的协作关系和数据流转过程。涵盖性能优化建议、并发安全考虑和最佳实践。确保内容对初学者易懂,同时为高级开发者提供深入的技术细节。","parent_id":"8d7c257e-b299-4adb-adfe-bc0ddbf112b7","progress_status":"completed","dependent_files":"internal/handler/brand.go,internal/handler/model.go,internal/handler/model_list.go,internal/handler/device.go,internal/handler/health.go","gmt_create":"2026-05-27T15:42:38.0124453+08:00","gmt_modified":"2026-05-27T18:35:49.827349+08:00","raw_data":"WikiEncrypted:nTJcmZGR4n7nsIYUWzxCEHR9BTHxs+LY0EgcqY6ozHnPPg0CLCttcCJZTpOx5+g2+gyrhHkzQ3Oi3lFEBAWcJwtBf3fcUwrFRJbk5e8EGX6x+EuAIzfWxxMr70rCoOXyzGDz3OufTtvXqJeM6nCBBbrSJFJctzjIO8YwH2hod0rSa9BvOFL67fRLHnu5niCbygn6bT9T5Ad6YdUpIn1+mocnIZl+JxBlJ7CmgIePFEwhBbZ3HH9nKWBBaq8X7TfEL5bB556Dryv38amvl6Tlr9+oDWLzQ7durLm8mEoKTLumTtOGkLB6WdZ8ZnmAme8xYQEh58Gq/FaXq1Ch+bbX7c0sY3N207YdS+s9ADC7EYlu62+KRwIH+fejouD9Xai0SmElgzHAm8sdC//M7KELtxj0+UkF/DCTjTGZZa2sZbIvBheHRGA4uopAAdJW1z0WVUX1+aaW5BCD4sCbivzFSePeGIwaJc4S+FibJPlTKfStwCIoo5A6v8DO2AOPdiUYgzaMvqF1C4mQcHb7J2SBtLsaQepkGu+YZvBksk0Lz+NpJEH2FKFI+U+y8kw97WoPrimvQ2t44IJNHJc0WmycS/PNb2FSzM2E2hj7mtxsycLtn2LO5KOlRK85jdTSJFqGcYZzeZ6T7VK2yBxf5rRAwRATKfq58519HtZUycv0AeFGvOfYEpRMv5E+/9eF+o2hi9WqBURire5cWunx1RrVQTJ+QOs/ejc4AfuInYvURMp9uXUy62pRU8d9Pvq1zCbvM/QCKFu+YzdDyb+IucGj/GUmvrZTwLHZF2//WMylMOpEzsbGaL+cgwvPS0ZpiHx2Dr3KyQ3uIJaUsiQKXOOl46GI8mNiPEN4JP4rOorOH1+LOAd7a/LbC0xqg6Z0rlNQSQIc0ujM0D9L7WtfUrTKRHIwi89fdj2lY9xinRj8OsH2MnVNtkTirZPtudetURaBAmlqvomU4AzyIeshiJKP+D2WDwDSDXFuKCHzQ77xNb9Eo4ijpRO55+Xj0sqm0QGg4VPdachzP0AXWNlEvSbT3daOrRwAwKfxcK5nI9MjOx1lwFr0GcPqXAqx3khltksU8hfLyWdyQKr3kLrxNXwU7WQRVbWWtkTcfV4eK9lAXsF5YC50ZzKcz6RRHQERSKRNZWIgfr//nusobqJtFBZk8kBUZwgnw89udjyk7U6XLghzduw/uhHaMkS8e9a9eIcoHn57wG7KVE8q34/ItI6kF/9VYvcjQCGrboe1hmIrwG46Qpq8rKhq19zjM1N35JOLqbxS12v9mmyX0JhAkWIj6uO5FDPFOr7elw1yLGp+9r58B4mMPOFb/utyMhIn9nyKQ1SZJhWrvC46j8UUgKYX1zzNmDT57M8HBWkM027nRZTPuqHWLwy3BKvLdsip3/fM8IWCtK52p3SrvFjjDa3us6v6/+ldlLF+bAJPbDqMQ5Xd5KAFIRmtfI7Vt+3/elwQnV/hfncEobSgozbpi/+wxFDTehDxNn925sH6W0ft6ayeiO6l/Z26jrBSXhw0v7uN53zVoQheZdTZUOHGsvWz5HiGx6ZRWZhxdSZLlzVsU9hRdYgF/fhtW8nOSODxNk4oAkvprvgwx9TgdWnjME8piPjdlKsqcJKNXiNkMFThtdotd5/oVJWSUh6wEvdMmyJZ","layer_level":1},{"id":"591ea147-ba05-4d86-a671-941af668ca2f","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"品牌管理接口","description":"brand-management-api","prompt":"为品牌管理接口创建详细的 API 文档。记录获取品牌列表的接口规范,包括 HTTP 方法、URL 模式、请求参数(brandName 查询参数)、响应格式和错误处理。提供具体的请求示例和响应示例,说明如何查询特定品牌或所有品牌信息。详细说明 Base64 编码响应选项的使用方法和适用场景。包含常见的使用场景、客户端实现指南和性能优化建议。提供错误处理策略和调试方法。","parent_id":"8085e1b7-3658-4490-8b52-9a61f3e79976","progress_status":"completed","dependent_files":"internal/handler/brand.go","gmt_create":"2026-05-27T15:42:40.190927+08:00","gmt_modified":"2026-05-27T15:52:20.2742155+08:00","raw_data":"WikiEncrypted:MpYke5d2PXdqtxI+drCrLtTQMJR2qutlXYM1eplHCPm9/Q2P6fWxhBRJ5bi1YZPWaHS/NqlGVpUFmW1DTLhf/76xGG0D1/eLqVfyND560PlQohHkNSJ7tG8q8rNN0PSoYa8X/dNeOTyE1A+uNuvpiB8VEfTp3tDUy+z3wJjo7Mac9XZxl3yz7HAEroJflv+CMaOLDNpuuFAizP+9X1/8yMamdkg455SQiJ4MA3tO8lvrplKeDtAsHnZMOuRb1k8H2J1Okf9ERLFkl/hajhx/ErZkMXJcVDAafq7dea3WDtuhkapO0hPBNT0jBx23jA9D7bdwpP8HUMhRQofKSrXSGWsNkOXGoTUbtKPcvqSXhQc/9ZnwEEWeVTez5dnt0TzIm14zjRSuX8WW7fn2EC5NSDXky9F0+kI+r1SW0lJAbI3S7/PzXMppdYjT5CIvUr4oUNfXpKuj0hpO8TqMLZU7tVSVTfLxNXN9GhtdNUotltCy+fTfIRE9oX+iVuqgGtGw1XfkviF0TKtN2+lC3tYHFIpPZl0lv2u1hS9qg5UQt86ZqNo0oyYG4iMTW1/PcJjvEh+ZouSCdeb1/NZXAghNVhgC+8CAFMY8ARl4571OoYbQgSJas0Ved/ljSKxbViyBTgk/eadCH+WuFgEUJPidhbhNV95LyTxjvd4d98Fz4GQj2038lVoj9NivalyW4v3H3DG7fUSW/wraV29VqX1jG8ICAA3c60Q5kE1oNPSUR1elSjYrLy3on9k9r8INUoZBOoRUyflFm5B6kmZvm44JlzVpRLRlNpa3erHjDw9LI3thWQq/NO7w72+KvFuF8zaQB3H1VyMGzou5eP9dokkthFbhCLnEofzO48Sc+x4zNRb2ub0rcxs3APyeA95SJ/c3J9UaFr94I+ITvJ+DlDyvoZNjoHZ4/PsNi22elB2RuhO7SsbQKIU3Nh9ngyjEqTmG6c+HSPzeLezD9npjOYrsjxTcnZkMSsIAqZRSPeW1VwP+1y42+EAhmnF9vQgYw4YM","layer_level":1},{"id":"fb8ae541-8bbc-4544-9133-e797be1433e0","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"分层架构设计","description":"layered-architecture","prompt":"为 Luxsin 应用 API 项目创建详细的分层架构设计文档。深入解释 MVC 模式的变体实现,包括表现层(Router/Handler)、业务层(Repository)、数据访问层(Database)和基础设施层(Middleware/Cache/Search)的设计理念和职责划分。详细说明各层之间的依赖关系和数据流向。文档化依赖注入模式的实现方式,展示如何通过构造函数注入依赖。解释分层架构的优势、约束和最佳实践。包含具体的代码示例展示层间通信机制。提供架构图表说明组件间的交互关系。","parent_id":"0506348d-993b-48f2-936c-908972f149bc","progress_status":"completed","dependent_files":"internal/router/router.go,internal/handler/brand.go,internal/repository/brand.go,internal/database/mysql.go","gmt_create":"2026-05-27T15:42:44.0573625+08:00","gmt_modified":"2026-05-27T15:53:50.4735252+08:00","raw_data":"WikiEncrypted:Cbw4rSSRJFTkFIVuyRiw4IoOVu9h4U/miV8kuFep2zRCWdjPBNlat3QQ8xqzDjxqnwEXQuPFqO2rdKF2PS2SXAKzDQAtOrwT0N0Bb1cVz1ybTiUFKF4yLIfZkQvmd4aTaafAMRNgGZZmW7p4Ef5Gb7g6VLCa1ky2b8mBvNur7HulgiwcdOzHhqi+XnXEdfba/+4TOqQvhA8OEJsD8r89uJDnH3WUxmiulVTnh8wTsjZ/sG6IRexTh8wnXF2Z3Pp3eoQrztwivE/v2tdi/tM+xK1ZLq6CQH87mEfFjtJjTQg257NwlL8OIUf7otektOR1U4nLWYMIIFT9ZnLxCRer9o+2+pnhIDCkzxWjQGwexhyS9T7Sq09AQ78taySEDIKsmPoPyWrRxYn284OLFkbbnE1kES3YlzGpQ1BX1HzOz4I69saOR3KsmELHh7P7qZT9s8U17TqLBKRo4LWPb9lfHPc2n9CNtaojQSYBresLm4Ta7KRF27FZXJKCUr2Y7A4p1QODq8Xxz7oxjv9ItKra6FFGv7FB+vqalxx2iPAp824obAuXeSRgvdRFeIQJ6R5siQRJFuZpQJW/aigbXEWcoP3A9m/wfRe0jaxEI100Oj9QQGRz3OGUeAoz62DjwUXCX4AUuMqRKjmjvBQP/xSKnA3j/lKtduUs9QoLJ/g3nrBj+jDR9Q6FoGxuKVUCy9+0QH35x8onGEu4z2bXyyujjA6eCclxoq7ck1+KWQfmShbEqnk+bd9dTRVQMaDBv2VgymZnIMvJEvLJFyAlmW6Bqc3qZkv9C8OH+uS90l66JlXniuUHlPinlQ+3/eJiqqMldDvT3oLvYeXLWjHUquxR0LFTQ9XFrzdxuOzsjbxhKaN+FjNZWN1d/J2TdK3LtYlEMaaxGQGsUxdTQuCIQqyQTc6n+yoXpTJ7xGtIitcxvZ6lOtQnLu2VN9ID29ySBKUeNTEDo6F486yfARaPMVjKVssURgEKlt5pEWVPnPPxd5YgYqn0dNm3g+hU3Esrx9pH0r2T8ity7CL28QWZWdthEpldnZLRdQHK7yf5ZTWBjij9h7ozRglKkjrqYtDyBCwmGNGnlUN/zURSFldO1RvnFPaGPmkGSGZaMA5jBaIqKElGCIIeGQcHEvM5reoBNq6Y71tWRTS7ei1SPsvnw2EYGGgUPzY8HealmML7QlT7utxN8WnldmX+B9tvQ0HNKwQBmMzgxPI0ycy7vcx4Pb95uK2tkKZfyxCAqZBZo2/oFspYlsMKwqPF7RMfFxnD5cQi90gF48iJKU/WEb6aXUbCDZrVdhXzg6IMu6iuziM3fdFSU20A8HaJB5hfLpDSE9S7","layer_level":1},{"id":"6e42204e-3d78-4997-a95a-3311c8fcaa43","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"缓存系统","description":"cache-system","prompt":"为 Luxsin 应用 API 项目的缓存系统创建详细文档。深入介绍 Redis 缓存客户端的初始化过程、连接配置和使用方法。详细说明 NewClient 函数的实现原理,包括地址配置、密码认证、数据库选择等参数设置。解释缓存策略的设计思路和应用场景,包括数据过期时间设置、键值命名规范、缓存穿透防护等。提供具体的使用示例,展示如何在业务逻辑中集成缓存操作。包含性能优化建议、连接池配置和故障恢复机制。涵盖缓存失效策略、数据一致性保证和监控告警配置。确保内容既适合初学者快速上手,又为高级用户提供深入的技术细节和最佳实践指导。","parent_id":"0ba3accc-326a-4433-930c-5b951d4e5dcf","progress_status":"completed","dependent_files":"internal/cache/brand_cache.go,internal/cache/model_cache.go,cmd/server/main.go,internal/cache/redis.go,internal/config/redis.go","gmt_create":"2026-05-27T15:42:51.5485979+08:00","gmt_modified":"2026-05-27T18:36:40.5405367+08:00","raw_data":"WikiEncrypted:qF2VoNuQmlFJjqRbYbbhOvcXQhVMYEksE+NeC2wRMGvQM2IjYFDS9siO1iO2s+wXGt5c4G/rGBotfHAKl+KluyLXHEbz0a+A38FZJBcg/xsLVn81ZMr/D2bWrBbJn2fpjSOko3snwikV7KEicvuTRLfGF1uyRD9yizrkBo2nom3vkAeT2lpfuVOpR2K8ziw+iZjkPanA9ft0p6lRydJ1JwCvJgauyfLtGQALZRi9tplifkJF67PdJVggGG+PdKlwoicJZ7CUXJDkAbaGVZr5ymUdKpVvpKG1qcLwU2j2lZ8AOZTvN64+XL+tFd5jH9zbEn1Dw90AfM6PdvqFTNsoEjE0Jk4atkXxxmQ+5YAchazygCjDmM6EsQgcChzHcQ1hVFusjC3Klt/750WNEMXdWPN6ZKDN+mdZcFuEX+TWLWrGqrC7bJ1vvArSMTCDOtmsx9XK2O1OkKu4Yt68Cw3G10JtB8aTo9uoK3dWl/SYtd5+Uz3pz4DOOXVx5BnQ3B8rTX+eKpDGDNoIQ4g7lUpLn75JpojKpK0Uf86/26FNBifL0DlkOBNPRBOykUd6SlwQVNrTRVTLeulhFzBh80b3azCsjj9FpbZ0QvpZ50Sc9fzE2yUALx8W3sIgrOKiJWb678CwiQ78abW22G1QZm0vdr6m2mTtkvQ6lFOvQ8cv9iKuM3uQusE5QVLmrBWkKT3YjsoyXWJyO4LmhkoCCum8ootzLJRbAM8RzcHBRWMi3vLkTF/qt7TcTi32nJEyxJKgWrbr9HJRnYwCGAHj9eGBCLbzTQLW1jkitLBsC8DrjKiCrD8GAlxYOwqdZMJisYcnxxFYqIoVg6/kJCFAgC8kyXn4eqYpYg2AE3eGNJlJmLXkkYJyowYdd2iqWts34bcoIKZ3bSe22uavQ1+HzINa5gRRgl0c2kimg2JxvxS39ZWcwsRwx842zMaTpYnL3biUxHNksXTQYvSmst1iuVUgUZUsVcEZOrTLtoxA3/Sos7KduaUxAyx3gaJt7vIh69kBNStH7n0S9n9bPr2EvlmZ1rXbfQ5004Sp3gbTBD3iTlF5CbRi6TcUJbFpp2V5Z/D5ghV6Bdd/gqOf7BGnHu7zAA/RGylp4QkLWfNtREhSn/h/WsQv7uvgvlCkmCoeAb8pnFa1aqu2nEFV7ugmL9iU92hvqgfwCcpRKnjJrAbzBc/VvBY2+mRpjbZrhnvZz8MVdZouSbaJbR+3wTeZPs2/s7co/apOf8cXOBEf5w3keVlHws6FkTrRVuSXBTby3kjsFVd97eFEYI6F3SyS7qg/Lz3GObMQJIqITwH9MN+kQVDVf8STYkmM4GAGfv3QMeNZcs5BdeDIPWibN2XOs0eqHsNHlCVV821vMW7I4JAu47667AlZ90XTG4y9javLSyJ0Y1iZ7GHTzywqrNwhML3fai5u81qYEck4NQPx44U+TpIRnbWoRJTVR7apgWuf+fP8h73g6wSgp6NnlneITQmVk+phyp0M4aE+ykNmZr6cTEQCQrPb1Q5B+FjG3gIT+A/bT3J287pdji9TRQR6+iTeJpHTnh3k6R13l+o+TEDI1g5JxmOrMAdxH/rb69JO3OWU","layer_level":1},{"id":"6de9a03e-f360-4daa-97ac-dc1cd1937916","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"快速开始","description":"getting-started","prompt":"创建 Luxsin 应用 API 项目的快速开始指南。详细说明环境要求(Go 1.22+)、依赖安装步骤(go mod tidy)、配置设置(.env 文件配置)和运行方法。包含开发环境和生产环境的不同配置方式,数据库连接配置,以及如何使用 Makefile 进行构建和运行。提供具体的命令行示例和配置文件模板。解释 APP_ENV、APP_HOST、APP_PORT 等关键环境变量的作用。包含健康检查、品牌查询等基本 API 接口的使用示例。确保新手开发者能够快速搭建开发环境并运行项目。","order":1,"progress_status":"completed","dependent_files":"README.md,Makefile,cmd/server/main.go","gmt_create":"2026-05-27T15:42:25.0297402+08:00","gmt_modified":"2026-05-27T15:45:02.5503172+08:00","raw_data":"WikiEncrypted:qfgbutC7oyxR6nMxrwk1ODnNMBEQ3/sG78fQT1yXWju83LC7H/jAM8CEAvWT8huE5OClmQiIfNYNxHQ9s7RRS0qKOV1Xow/Q40Lf5w81YuuThtu0J6OFTGB2L0Nm95mISVZMGD73nREHXw2e/m/hzrb+N8ZuuUYDQ1FQZZcmT6YP+CSB9cZx9b8UZDJ08MCgp50aJvLLku23MEdwFc0gj3Vn9X1djLPuceJ7dwpUG3aeQmdLHCtxnEu4d1LuWHOx9SORMidWdUkvBpxZh1Mhj875BKw8zi1Bb10CuOVR0o/umWOKMxS7pa+P+krzS6ZwgQk/HiWvQgzcfGvyyQkIUoEtVfRQGP8gB4azIvJ540SopfP4dNI7lFdjUOwyTR0oyYuzDc8Y4dPgrwjMNGFkwRmsbMB5f9fKw1JT8+BoOVDOPoK1gHP/uXWcZx9Yg92aHtloj/wlf0IvlSbGhTfmFJrO/wjuSVP5sooJD9GCuVzNgSDitGoZkvsycpn320vlVFUPXtnf/VH0JOo5PM7BMj/zshAL+vsXkYjllDwZWM6DYEyETEwa0kfHBm7pTZ2bMQ4goUU1UQAPAjjbYf9VJAWxLZYVJf25SxXbn1u/PDKifLJNxgXRJg5OyBhyIL6jTJf2fuXyNcczL0GyfRvunp1WzofE6bAl15iIFcNABHPqdtKOV347seHgIIbxupRt/eFgrh5u1k/i5XAKbSXEquVhICmh4waR9rf3HeYisd/Nvj/4cpJISkhNXsY6Y4AsIpbPl0jiMSVt6jMRFgTGG51WgeuZoVPzdIDJMhk5Rc9mot1q4rK434Mrv6TJamzkwU5v7z7zy3gNx1C7wf2f4tHTVCj/Gc4KfVU+uuMRKcAAPB9bBC4uoO6zcPRroMIr+NLZN+g2CdsZ3FbJvsw/j0KEtYP8EeQ3bYak8dmhOc3c/A8LN+8UIlfyxmY1xVgbu/fvkIh9NW+GktKxQZcPfzS9ZE4KL1oKMxW9uavN/xE3hjtivmOAdhyqBhchbo6uwaAtv18ZMNOPoWLrgOW58/NlHdF4abXrwuX3YUwJHiMsjsgV6C7ZnTsYDrwXYRETPr7XXOmztvG+nYXkaHujEQtdAh/mf1KjWTbyY9qBthEG3zBTZ4AVcKt15anR6l8x7Of1pepg67m1lo31a+QlxkvmZdH6vV16tMnYHUR/UHYdSIb1yknP96PdGpWChgEZL4bynWLBFveZQSEhM057qMj39UgMZjHQd6YGbwA3ma+BnBwAMHKZSvFAMWN5arlTN9ZP2iLxhhiNniYPMQXdTviDJPYW2mRXPAgEhheln74="},{"id":"948e0792-2de7-47b1-b73b-e7b246e749ff","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"数据访问层","description":"data-access-layer","prompt":"为 Luxsin 应用 API 项目的数据访问层创建综合文档。详细介绍 BrandRepository 和 ModelRepository 的设计模式和实现原理。解释数据访问层在整体架构中的作用和职责边界。深入分析数据库连接管理、SQL 查询优化和事务处理机制。包含具体的代码示例展示如何使用 Repository 进行数据操作,以及错误处理和异常管理策略。说明 Repository 与数据库层的交互模式和性能优化技巧。涵盖并发安全、连接池管理和资源清理的最佳实践。提供扩展新 Repository 的指导原则和注意事项。确保内容既适合初学者理解架构概念,又为经验丰富的开发者提供实现细节。","parent_id":"8d7c257e-b299-4adb-adfe-bc0ddbf112b7","order":1,"progress_status":"completed","dependent_files":"internal/repository/brand.go,internal/repository/model.go","gmt_create":"2026-05-27T15:42:38.0130833+08:00","gmt_modified":"2026-05-27T18:35:41.8040874+08:00","raw_data":"WikiEncrypted:Zb5TNaG1u/mRrgPr+sDyChJtzwIYFTCqYOjGU3g0QRCfpxhFN6jbespPa8XDdb1bDp3AuvsVCECkcjmD8WGzuQA6ZBzaDsg2BTmcYyLiBU/fXFxRrjQBCKhw7EdY9q9mOD7xeV09cQ23lyqcZ1JxiKDMyZTkeaZinSw+CyeLncwBBkLF7SA+EUpvQg5T2V6UUZzmBynfSB91UbIwQkn4YJPkneRGbn4aSt/0AHOspw5uR45u8Vxo4vtsybyyQTwHZ0yDHq4kShUwCZUHQQCG6HtsA+/96zmlyVwiXTAZ0kDAkHvZ++i86OYR9tu1n0aKlFZ+TH2+00rQkh+c9XHW7S0/hHRX/JUjpuMRVxxoXAZ75GMYLIysvB/824kykkYyRbo+CFGYaiZ9NtwDTnSOs8Ijn38NFtETIPLu7TMiyF66f0M5i+C33aR5R3t6rd09ndi9opSCgekwPe/HFN32wUXiOhRQDFmo/oA2sVU+pF2Bc2xuDkJxuI9xhbYbVhtSVCyfKhBhxhZonBkonYsNsJZo/6O3G6BEFTGfNaxPgZdLMyWfA98xtzf2SgxAV1vUQro05XDbKk6dOFXpgHY+4z4xNNhAF4hGCwZrBeSz4yBHijT8GhIkcWP/JfkjlvtlBh39P8TiXdLb51y5Lk0ZIF+bkVeqSlJhfubmnv89A+Q1tKx2YK2fZkp4POQnQHG2/vmE3ZhJLui60ZSChiJf3ZmEwjjlmlbD3BQrq2hVj3k13oOV+GRdK5tMxS2ahYOc4uejEKaHZMm+yH533dTR3rpOYPYj2Y/E1GnYm0fQF+Jk6n2SAZEfAWAOMR+T3XfCERWYX6vJ12sO9r3V3Ya1J/ozczYC4vfqXIgFoIHUQO9hEyb9Uluj/u0uzjjJsa6j07LqjPJf2/GKThTbHE6+U9Ux/fS7oMiVA7jTlsLENTy4G/jkoOShYIeF8LLiDgaHHCXRP5a4SyK9Hg7ddgMvIoVO+sdfEX230MNSdy7R2rIPG2qi2RwhXgqOTychDohgjd/APhZf++/24Ci/vxfM/h7vXAmjJmArYIsoqCQdZrxdZh8mzN/mKKAYOvDHlsjmnb+a5AEZKRQlHRDoDvxdcv9K3nDrnrOE3E+xevf5ZdE2Gv61WsNpGrmoIDocBgfWKBHs8b6aTawPHWegc+IpPNb9p/SfNyGPP98TJFwmY88AhznK0Q1Rb+4x0WQUXfmRixT2/jwTeEIWDSRPOVCEXMX43u4TML/3bXa/4w+NfF8WcfiVyOM7JLJXGWPz6xT5DtM7wqoofnzzSy9j77ctcyaQZk2bZi4RTsbXhmR57IwgPWo5vswk5fpmkL8doGwBCDTcnK4x2Ri0HSZ1x0QvuVccU1jYZYgpgu3Cej5F5dTy4BsNPYksGiKRXIQoUhYYo5iA542Tai70Q64rOPyl4gHoDQXclqKtqJ5jWy9Yb6P8pHNkkCZsVr2XH7S9at20Wna+f/hC/F1sKLkH7XCuWQ==","layer_level":1},{"id":"8b3ba473-1cf0-4471-a203-9a87732dc227","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"型号管理接口","description":"model-management-api","prompt":"为型号管理接口创建完整的 API 文档。详细记录获取型号信息和搜索型号列表的接口规范。对于获取型号信息接口,说明 HTTP 方法、URL 模式、请求参数和响应格式。对于搜索型号列表接口,详细说明搜索参数、搜索条件和结果排序规则。提供具体的请求示例和响应示例,展示不同查询场景下的使用方法。包含搜索优化建议、分页处理和性能考虑。说明与其他组件的集成方式和最佳实践。","parent_id":"8085e1b7-3658-4490-8b52-9a61f3e79976","order":1,"progress_status":"completed","dependent_files":"internal/handler/model.go,internal/handler/model_list.go","gmt_create":"2026-05-27T15:42:40.190927+08:00","gmt_modified":"2026-05-27T15:54:37.2236089+08:00","raw_data":"WikiEncrypted:o5cr6Bo4m333A3G+lRdTT5dIP53cxEH82N4y2QAmkutwkd0KP3KAvEyUQN0CgerucfElkuIsDGzyGuldlZZBSDX//XqOqGZKP+QnmlgMLhVVCpCNWw9EHW/qmIVTQJxBtumOVtR8RGgSMrfzxaMVsu0eL8ZY2bOrDST6r17lVTgdrEdY1nQ8/+B+bkzQ65abRsvYiYrspSgJteye8d8XhEaqyOpAsROLv0P50tvHHJp3pH0uNG7lrGmAIe93f1OqwLCINSCxfZ8qPHLxTT/1qsC8mBTfx6bux1+J+Dfuz0Fr25e9dCzBo06yz2oIHMpYHNOV9TTNo0Cb2bY4Etp7T7BAVAWYdmCPqkIp4muaajavVH/dsG3SIH9RE15781XFeLnZpjK3/6SyXbQzhkntGT6UDzd1f7YIF/wsYN+uji3Ytz2tKz+YuJAr2Eu+YAeR5ONhXxZJufNXZqE6lFG0h7UGc4EYAADRkXK2AefSD9qXzxvGet5VJqYDwvW+BBTRWQB3HtSC4RgwTj0pGPjrHyjdXRtYabw+1Z/3qmXraEjCkcBZqY83T3pyfSdpygE/Tp7yYYmPu94xft9AqhG0xbLEJMTwW0ad3sFR22W7PkIMegzWRGtSSosiRq883B7ZAuea6PE+DdpILgCSAnEaNFgOXp9T09825iKyPsJ7V/ePwhLdj5Lg1Sf2Ar4u2WoKKzKmVNMqngve7AIqYVhGA6hn2tryumcq512jTxKeeMrtTR1kI+kuiFb4598z0y5j8dx7XsYW4ySYNYOvKIRMNvH2r3hnqBb5pvFv9gmk5vsVg/gSNlN4VOQsszd/o2lXQfYUaon0zYsdmR73UvkjhZMnufNa5tiCXZIFdcP1BTWDeBT/f2uOsftIky+JZFoyv9ZKzVesewLPArJaSxOT++MD/ggK/zn1vWZEgWgNcONx3sbyJnPoWEw1TiNMe6pxO3VXzMjnyIL0cie5BeVP1kiQ4S3XzkediOL2bQt4hjEMPkSuuLR7ryE23zbkEZpvwV/2TORoBY12Ii6KK5Ezg9F+aFO5SG2MvF2IZyMgpmnH7KIBfag8sIb3o2RSK6zo9lgRYbXsw7lfxPpBtPyHNpHfqIYgOLYptNzC/GBTVdTQYRLULRlp1XeXxGw8mlViYBltq/GwBlmKbMKrLjsczQPuxFX9mgcnTntc2Op+0ITGX/cW8pMa+UlI2Jgvay8k","layer_level":1},{"id":"ccdbaf47-6cde-4ad7-95f8-5b92d33e2440","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"路由系统","description":"routing-system","prompt":"为 Luxsin 应用 API 项目创建详细的路由系统文档。深入解释 Gin 框架的路由配置和中间件机制。详细说明路由组的组织方式(/api/v1 和 /audio),以及各路由端点的功能和参数。文档化中间件的执行顺序和作用,包括 CORS 处理、日志记录、请求 ID 生成等。解释路由工厂模式的实现,展示如何通过 New 函数创建路由实例。提供路由配置的最佳实践和性能优化建议。包含具体的路由注册示例和中间件链路分析。","parent_id":"0506348d-993b-48f2-936c-908972f149bc","order":1,"progress_status":"completed","dependent_files":"internal/router/router.go,internal/middleware/cors.go,internal/middleware/logger.go,internal/middleware/request_id.go","gmt_create":"2026-05-27T15:42:44.0579461+08:00","gmt_modified":"2026-05-27T18:35:29.939743+08:00","raw_data":"WikiEncrypted:awWreJ4vbyDoG0xJzdo9962/EguU7aHgylmLV0bXWudK991xRrNmlNXm6cdg1D0SLArIcaiebnTiIk5ALRoah1F7N/jEqTOdtqzUGvhnHHdkrdGKp1f0p//OiusAVNsUuzORJk8F6itQjg8sAzi99yjPWuxCoN6aFxuU5DDarymBvIgYK0CQgdSWKWpO3FtV08sV53wIddgHlB473zJxslXmlHxrqhCFKsvglAmKSSt22PPeGPXyKfKPXHvsBSLYicPvioimld86vMFqWGCXDSQDW3kmMOB94ARii5vldIVpP03ADv2SZjoL+Ud9+r8ROzHMdV/WpYKBvnC9QosSPRoQEE47mfXwV+eB65JlmVFTrURS9AImcV6aGhHmevyQMUt/dhK8C0eDxkoAXK/A9/yyWUEmd1NjNWqBjaZWVl/pFeEhR2eOKOIeB+UXVP2Lvakdksugbqcl/GylW4s4KtyO8mNHgsSofjrbh9MLgeZ2qIUWCEMflmtGYyeArjX3XihEb7LM+HraWDvkCDlrT82wSLVUnZAuooAhf/6ZhYBx1CnqvUoBquDId870T7PL/zly1HabWTLrWdBirLIjb7LZnJQCxmjhNNZdEXRTin13TqdurI+qSjJE6h6Cr2QEeblZheFaGTOZWdnZfcEoUKSGnr+4lAiU4WKuT5lUjF1337ohm40FiwQ51Vs0wM40mL5oIqfsgBx0dxpM+qoRn04cUb1lQQmdfUgj6AAC0F3JDVGF9/gxPVl/QMZH8QnUrNiDQj+xf67ilGPLibQkxKL9j5a6im9seqxZ+mKLuyJUNV9DRXXY6OXoYdjs5vzWDRXD7eApmYRml9IXGVOV+wXV157vDK8qXansO0wf657i/HImAUGe6NLP4r8a5LN+gBSbhdwweM8Pql/MIHT418oeIoS4h/7XP+wQuNJI3P4P9nk5ABtNRa4FDm5jhYOMC8nseUHuIvsVbaxiuqEdUsphInfeZ3JUjjRr2D73xXesdkqqfWfRQg/Zs95Tgbj5imbFKEbDXsSfz4rXyeMYGU4b8w7/PDmoEtH5YXvjNx7qZ+1CY0EeShg1ct9fD4PRzPgqg3m/DOQtCDJThysXe40MnfEBWVuADAxnUppmXUjv8/7cRgPRwshyXbbH3YknK8n4ghKebDlNyAI3wdT8DmwYzybxkOCLbYuGb+SyIy+7RfDySsj+RxZAhNtDfokTpBWh2B4i7YgNRc2mhzF4cEarUp/xtE+1BGqvxqF2PCg=","layer_level":1},{"id":"5b9847ff-f7b8-488b-821b-6fdfe2dbde40","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"搜索引擎","description":"search-system","prompt":"为 Luxsin 应用 API 项目的搜索引擎创建综合文档。详细介绍 Meilisearch 搜索引擎的集成方式、初始化配置和核心功能。说明搜索客户端的创建过程、连接参数设置和索引管理策略。解释全文搜索的实现原理,包括文本分词、索引构建、查询优化等关键技术。提供搜索 API 的使用示例,展示如何进行设备型号搜索、品牌过滤和结果排序。包含搜索性能优化技巧,如索引预处理、查询缓存、分页策略等。涵盖搜索结果的高亮显示、自动补全和相关性排序等功能。提供故障排除指南,包括连接问题诊断、索引重建和性能调优。确保内容从基础概念到高级应用的完整覆盖,满足不同层次开发者的需求。","parent_id":"0ba3accc-326a-4433-930c-5b951d4e5dcf","order":1,"progress_status":"completed","dependent_files":"internal/search/meilisearch.go,internal/config/meilisearch.go","gmt_create":"2026-05-27T15:42:51.549218+08:00","gmt_modified":"2026-05-27T15:55:50.6500526+08:00","raw_data":"WikiEncrypted:uPtIvUbMezH0ofnqqRSEthHE63LUAQzlPWMsHoJP+/Xvzp1zu9yMhdQo5+5IhHnrHX4ZOoo974Mq5SbaZHfjDGkMYXk9L6JwG6+nNMpoyLz7Yvtg+8V5E/tIsJ5Kc6+iYBU1An8SAJrGuA0Rg8PKKB2Lomw8RjlQO6aFo5tapv4T8ZcTSCEzPetfEDt4Ire/BS8D0NCO9C5peTRlECqqOr+U+OC5BfaXaEvAAPhu0+2LKV5pUWuqhJB8wS0sZ1C5WaKdq3GSgEsQPwvpw2BQ1jRzPp5Gw92/L6CiOkLBRkvHdCH9dpObT+Fc2bTPTxchCzPA1QxWkqYjFOEzIs4+c9QWuFqGuEbrHq+Ferc28nVGyeEv7Tu6l6m0Xe3CTg9tqdBgkd6r9Y4uV4bh0didngLNjO9xEjQiYo/ssQ7aeCgh5CY89JkKjbhy8iWFLtMr0REWD9B4Tb/USBDRMoljXzRJ+rOWL0o28fL4U5wl0ZRerKn1Z4oHbe2uKMx1+wXerr7aDOXN5JCqdJfUuX0X6xn/ZHUrsqiQHGXkRCXBeXGZYjdzLtsrL01/BtT1EzCiD0xUVjPPE9dWXXwHexSANSMPsC/RJmvwwlMon5lzHXlWN+FkX1N1OEax+N8FY1eBxIWLiwUWps0/IwghwilZeXcNGiuUf7skRlvM6iTjpc9QQeyE1h7qrU5x4xCrlcYc2S4pQv+WEFB6Va33skBqhNrCO1vIUjki6nAesFzcnPJkaWwnmEBipsjs1BuIUK3wxXWrnpgcFUZbb6WvFF2WRI15NCO+jImJ4SSo2vAvVRKF5JFtZlABOifDyJCkfMwUyU227ch0TmMp55pYqp3NoLQ7ixrqRxaPvxFda40SlBqKe2Yzuiqm/73r4Oc0T1zXequgzmTkaZtRaq5yqAJ115HA1HLcYITiZngQbSWTnPeVbWsb+DCPd33lIKZ8fXEGiNBs7vdikdYx+6vF+1EsrQeSjHfD0Ihmk87cLn4d9La5SoLzDfOVJEy5iZpWO3AaUZMZ4EcPE1r6ZMeZ8EUGqXQ9Nlpb4InQHP4W7ghwsYHtL5FFeja4OeMJNBxHgnOAypiJ8tPVobpLX600FfUsZDv09Mcr1xhbylBxsRrlqA7Gn3sOfbt0DZUG0uo0Rk1ME1x2rP5Xfa5lQH0t+tS5FpyP34T6dwqMGEtcccz6Je3BiN5IyE+vUyFHw+FdZ7gNtZ0hDEfzwP2qOWZT+c3Qsu+6MyhWHPs437C1isiJNawoEnOiqCV9kWhig5+ztneMD35zhcCTEgPu/Bm/bEThy3Rdd7iZFBdoU4vYaqKC7n7/DByj71DHngfpIkzvddxnNY3z+MxRPwwc3khnmY7jvA+4rooEThszp2Uu51YkzKA3R8OCZX8akGsfWwzUIQK2BB/CZUj5Y837fb7vEzAC6+ILo7N1OoawujgMXPweHQI6XDnpbNfOnLfNxXqPfgUApYzsPZoGGtPp5WSaiLcCw6qMXPNJVzEQq2wysa7phID6rq9Pl1LQxzlIH6h9p8v0IkxQMMloAiN3ufObHM9ygq7zggt971iApCCae3R6XOA=","layer_level":1},{"id":"0506348d-993b-48f2-936c-908972f149bc","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"系统架构","description":"architecture-design","prompt":"为 Luxsin 应用 API 项目创建详细的系统架构文档。描述高层设计、架构模式和系统边界。详细说明分层架构(表现层、业务层、数据访问层、基础设施层)的设计理念和实现方式。解释依赖注入模式、中间件模式和工厂模式的应用。文档化组件交互、数据流和集成模式。说明技术决策、权衡和约束条件。包含基础设施要求、可扩展性考虑和部署拓扑。提供系统上下文图和组件分解图。涉及横切关注点如安全性、监控和灾难恢复。记录技术栈、第三方依赖和版本兼容性。","order":2,"progress_status":"completed","dependent_files":"internal/router/router.go,internal/config/config.go,internal/middleware/logger.go","gmt_create":"2026-05-27T15:42:25.0297402+08:00","gmt_modified":"2026-05-27T15:45:15.0922502+08:00","raw_data":"WikiEncrypted:EPw1VhZSv2AMLpYzHbCG5QXmatSKh1iukhkKRz99kcWlEvnOwuqXvA4ZgQ6tN+ytovQp8yiqJicl84VZMQ0QFU2VsQju8IpcRws9R+O5UqWqyS/p2d/juMO7CcvH5Z71CG7eM55PPWPy+SJ+QNdupFqroK3bd/LSj0CxhfnVajICVNkUN5WBZxRD776A1wRS/9o+f2rU9gRAuwITsrHMLAbGKP2R4CWvSRvdssG+ipznfcduSvnmuao6OKPuV4jqBbRKw4zcI6RvA8OzqjvEzd71LQGHM4pSLSZHCpXNsVLsyx66RKMz2ehGMgRX9mmwX6tatCTNGRawqOaeHsAdZQVRO5F/B6eOmBUnLjBLXMFaj9NiCqZXNSC4hsNcV2NHNsgCUG4d5ZrRt08xhKOHc0qnU6uPcmCoIrcH7BzrDe0ZgsfQ5XPv2VLskL9VH7jP/iok3665UNTbFEMp+0VrHrtj3MGwZoOPjci63/k3b7LG2CemZFYRL/bBs4bMFcslJ5zofo0Udc21Z14UtDMqmtYl8JWFBrQXBiQmeSQ1WnHwlcbw4u7v98svD3w+hug0ZVtbBIzPxwFMvWxUfRg4bYDfaYuu9TTbJDDZVS6Ob7p0LyJNbyCA5QPrEI1J8F8PhZ4Q4jLG7aMJugVeyzmc86juCVMOMHEp/N4hziN6xK/qRiJHM3tNljxXReJi4IufNYJTXLNXYKvDPvBIyDFn2dE2mCCXqEozsEjZ+v1q0e/qlU1dunYg8xPxrsTLDcF9K1BoyCvSx+UQiB4ONUP+JxX64QXTtp+IU0v0seB2KMrqPn0/L+A8OWuXVZTvRwPavFOv5itZOdJAwA/V5N2eufZbLHqMglD8xPwtGKDElVmGnIo3BZVNSoRZySK0fotmIw3xMqHf/TIgp731ZvXaZCaKCnXvHmW1NCCQkqFwBHBcq3S04NwWv8UMSj+HNCHd++vSABXVmaVxgqblXcKffFrA/gNTjqBgt3JGZZI97/WtLhJ5rCuiZXimpuKRBCG9Mt4/TZBFvL8EtkrKKRM7s3qaiXo4+rxMwzBW5q7TSyuCkv7qZLVNg0tvqAaU87jlHeLK1szXHS95TJbbbwjv67i8S5YYoSfZZg4iWUWizvHjGv9xeSfB5oZEfizx8EkEkD6rutxWWUarg7NVOH0fJqslwz3lkocZU2+RLK2kbH+JbCdYfCoZ6SYU+W5JDYAfSxLyvGhW5sDb3XXYFtD9X30uW8TOYGcvIRawRJbAjmJmdlrT+9rFcYHVaBJHtLDAkEnSUMNTxZgsSUCulSQNjxAV66NfhnKRsTJ2+M3dqXj4LldBrlK0CwEZUrmzutKSXsYqB/x3yFnXshPVlWG0HqDXi77z/VH2PwAlmUZi30yCiL3c+D3rtHVruIK0y7+TJeQIcHCK8c8WmqIMeA6Zauq0wgWtGrI4ShyR+BKhcQEtCGA0ZPrOitzD+oByp9nJy/p/jyDoJ2KbQk+UK+DxYjyyeOGMh023Ioq+pZwhbHjNF8MPtVdr/ZTBpHSWIfgC"},{"id":"e81027fa-c24e-4492-8100-f051facb89c9","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"数据模型","description":"data-models","prompt":"为 Luxsin 应用 API 项目的数据模型创建详细文档。全面介绍 Brand 和 Model 数据模型的设计理念和字段定义。详细解释每个字段的数据类型、约束条件和业务含义。包含模型与数据库表结构的映射关系和 ORM 映射配置。提供具体的代码示例展示如何创建、更新和查询模型实例。说明模型验证规则、数据转换和序列化机制。涵盖模型扩展、版本管理和向后兼容性的最佳实践。解释模型在不同层之间的传递方式和性能考虑。确保内容对初学者友好,帮助理解数据建模的基本概念,同时为高级开发者提供深入的设计考量。","parent_id":"8d7c257e-b299-4adb-adfe-bc0ddbf112b7","order":2,"progress_status":"completed","dependent_files":"internal/model/brand.go,internal/model/model.go","gmt_create":"2026-05-27T15:42:38.0130833+08:00","gmt_modified":"2026-05-27T15:56:31.7808704+08:00","raw_data":"WikiEncrypted:klcgW2PbPxJambbKMzvFtzxL0nPpsuPMPxr5hj83lS7zLbVY013R4TC8XNEUYbb5qxIyzNIzP0UIL5gcgWgb2JN3lLqRFiolKSir3QefPwOA9n9PyEgt3UyqdWtF063zcOhUCuBNMrBuPrwe5CLRNYPjpeT80bmhf1WCbW0Wc4soOdqZfNatqkw2uzcHw6lRPr2OtTCqznVFik3UW5X7OSPl2Ttad8DOmCF+RIgP5/y9rHCmETZIEnQAjeyLbBXbw6UgR8f5iLkYVBNC7MFGFybSCmqrbPvzuYIucnF8DA/OBQbccvz8He0YhGp5Ug4qlUVtOLmA0SeYTnT3k5tD1obbgsTO4qQabKiW63BMDIgOoTKlnAxC1I4m+7qzShvq8Br3qYdH05fujRftdqvZ3vwdt/v22MmEtMVDy773q7E6UAWYYM5ZFpzQm0FMEmNSl01+1H3g/6NLTH9eP8bwh87Xu2V+U7zgrLU0hd3RZ0OahjypNpLHcMl2lXk/R7L7r4rqIN25hBQ6UmXVTgJaiLUx3de0ar0mjZESOIFPklc2p7+a+gJKnsuZ302S24Iqoj7AavR3Pi+VN/ZiDIP5Jeq/kr9vnhFkMn6zcXxG9uhrYtLkssRve9T9PQea2j7e01+V/IRE1erymaIw4LR2+ujdhB0V60mQlH0Z/YHMAaj2SBzGB+QTLKTIYabYR2UvD5j+cjFoa+Gbv0JVt7WMtqYL+CA4hSSdAuR8tMIXc2t2CcnnQa5O6Tn0MfMrcJ7Vdd5GeLy3KLSJMiyAdGf8tQ+JZ89A+1fQXxuEAa7TZZ3BB2Y832o5/9JIpgOQz/5oUXiHMQMoJPg6JwkfMJgMgWRzYBfhqRR15ceTQaxuMvii3FPvdiqa6G37kowws9zAmlHMZWT58FopOSivkLJCWodvWMrHAkMS8z8bai5nPSMfxSVyZw1PIyfCY16u8WPVBvxU4hqjJyB5Bp8wM0yN5480l3wa1Q3fuEzaJKj7nPjtU4N9gPI8QOahBMHpDjUDymEe2pFTNRoGiNEP45Jp4RyxlYSX4cFgV4meLKhbXpXHiY0dnAaKfBc9jAtgWdWnmviK0GLQ/jILxdrqE0PICXi9+4yqSRI2Ry0zpRi3qp0Y//pb6taUy+j56Vo8zoIsZTAucPdhoOaagkLsFMjiBClhwGTCL4ddbbDqwou29yxIdZ74gd0bOsbOrVf2Cle+fOknD4NoXKDGYaQ+KHd3gixYUsoET/IXmUN0vFu/IGEzI0R0XrwFDPtjlVbg16+Sht26Ty4kWon1FNcLN3BCZRX167pLM/oB/mh/MdCRdaEZ0DoXfwegSeXYwGho7HJZDjiwFdafr+1MXjd4UgRw874LAKL9N5H4GLBDCG6lvCQ=","layer_level":1},{"id":"8b7558c2-be32-47b8-99e2-1964009b4337","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"设备管理接口","description":"device-management-api","prompt":"为设备管理接口创建详细的 API 文档。记录设备信息上报接口的完整规范,包括 HTTP 方法、URL 模式、请求参数结构、响应格式和错误处理。详细说明设备信息的数据格式要求、必填字段和可选字段。提供具体的上报示例和验证示例,展示不同类型设备的上报流程。包含数据验证规则、重复上报处理和数据一致性保证。说明与 Redis 缓存系统的交互方式和性能优化策略。提供故障排除指南和监控建议。","parent_id":"8085e1b7-3658-4490-8b52-9a61f3e79976","order":2,"progress_status":"completed","dependent_files":"internal/handler/device.go","gmt_create":"2026-05-27T15:42:40.190927+08:00","gmt_modified":"2026-05-27T15:57:09.2032126+08:00","raw_data":"WikiEncrypted:W4RZ6LTz4rg+RteR0TdbvOUiHqohKn6BWshWHivzY4jjRdHovfIvtJ2sB9MDcSrupgUsB93CF5gLCd86HZ+9K0WcrorZ9lipKx/OS3vd+kUisB7ExUabBXlss9QTm91m5fLHe0jeTIgrcbTRB/E6TiCq7LQKIbDT/vX8e7gGsXm7c6bJS+oGkiX4dvfSGGxPsTJAzByQh9zKq0+EB1Cdehda7LhobHHhD/zrFU8gTYLmATkOqk43kMtWFXfUxZx4vfa6jkkrn2Yy9ZXvHFDce0ofKtOVLfq3hKZi9k4owDfhOWo1Diy53e4Nq65RlOEImu+zThrRgYRk0za0MnIJRjTpwcuh6BKDwprXShIUp4xbiPG3TFnnTMAA93o2zAcKGb2Ca0Qt/QT8wY2uCxaVwD0GXGQGpI93ttiS+EfxOpjoxc+xkTy77AI8niJq+SBImduJC+de4cefpYZZm2E9MmZSUbEbDEvXBi0kIgnFiSH/BigSv1UA9JM4cWf7m3AvwqqCGKN7CNtERiJxTyhs8xDKqxeoR4CRHtZ0Po30nTlEXMrgkyjlnvdlkRokDUi1ZrRl7UvaUc7IAQFie+6dHuwt4/iZkuQJMydlgb3ysz010zMUXCSWtnqb6yQi0Y16jkKXmPgBl1ifYkUYzIrMzr+UZZHq7EwLVVjj0SWvnNnHeWgSst509csZcp36C60qyP/+8XjGBbVMUoTVonu89qUrotxb4Dr07k7YzT100WjET+IOcrQfLKiHM2SO/HyTfGKSpS9/T3JoW4mI+tVwFQ0QFEey51AmMN72D9I83sYo/INqWjC4cAhHr/IiAxVTtcj0s5xI5pGgOAv7XNXGFPmc4X+rf4C8k6zxIWMCOirykNyiIF2cm8i/LUJFrD+sqdGCVdilSQlsEgs0Gf0faUDYAUNQdylOw+rNDrJMNPGktUsoxfdb2WBc63/L7nV6pPm7NnpU0xCDhtdG0/jq9hEyEESN6V7L7bOvG/csrwRuKnJZ65RFZNlodDK+JNRUhn6yPOkrG9uC0NU12cyBY+r8Su9MV/6ozEnnNWpxhuM=","layer_level":1},{"id":"bc6825c8-9aa3-4f0e-96ca-ef4925af0570","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"依赖注入模式","description":"dependency-injection","prompt":"为 Luxsin 应用 API 项目创建详细的依赖注入模式文档。深入解释构造函数注入的实现方式,展示如何在路由初始化时注入数据库连接、日志记录器、Redis 客户端和搜索客户端。详细说明依赖注入容器的替代方案,即手动依赖注入的工厂模式实现。解释依赖注入带来的好处,包括测试性增强、松耦合设计和配置灵活性。提供具体的代码示例展示不同组件的依赖注入过程。文档化依赖生命周期管理和循环依赖的避免策略。","parent_id":"0506348d-993b-48f2-936c-908972f149bc","order":2,"progress_status":"completed","dependent_files":"internal/router/router.go,internal/handler/brand.go,internal/config/config.go,internal/database/mysql.go","gmt_create":"2026-05-27T15:42:44.058506+08:00","gmt_modified":"2026-05-27T15:57:20.0074643+08:00","raw_data":"WikiEncrypted:Mh1qeXd3vDrFfJakTA2LVPk895/C8yZ/nxc225NJgc/vaOsdHkI/4otOCFkjHjzGbvDeu3NfvNrTVuHfsGzx3dTon6sTOx2eqYzt8f1TpTMBkynZ464lQq/2wtKdG64LJ046YBidJFw0ZIeaCnDrSGq0XciHKDBtepVmFvc3BWHO81I8gofhmEgiJhls+KdsMfDjsRa7M0G749YeIbqdVds5ERm7uOgH8tBY2YpTkxOsuOlArfwWtnc/XtjHNW1JrezQd9Mid0eOpxaMqgE8yaFeTmGavv8vNNdwkPtoQaRIZjrbbiqxTvEUceUQYbCYQRtN8pZ3IPUSyl/t5LmjfI8kcvGH9WDuz9YzeYHPRMxg8qhmGItUtY5Mpls5ivH/EIhLrZokNcrV5iUHEjmqb+XCRa4yG0StkWI/9ZNKERgMX67LixsijqQn0vqlkUufnCRPCP87EnYdQqECcP+43/+HHmvfgNL2YqVlrJqTwAbRfkIOiR3RzC77UVxXk9TDkvoSu55Qg5T1DUnOUSH3YHIkfOdMt11bVZaQveJDn8eKF6fBu1S2w0nsgVRJUYN4xWDBb67St1qj/284vBE3o80iLbKGZuKALFUmDfFJrRWZxKz0EkrEzGEHLZlY8gqCMlDvpIDasl1U8U3c4akb4qk+YO/zjLohUFROnbeKRIrU66oQ5vJmycIgrt6M4+rjAVUkaEguxq+ntt2xZNdA99vs2cNQGXIFbb3h6nnwxQfKvVVV//1SMfISmnCs34BYxkwVXBcadfbrEOM6CtcYBMqCXvzWJ33/FXvJZmH/A2KAbLgQ/kpz2RPmPzOUT7cKpJqB9MhC3DXdQfZ4kFUFzF+13sJwXPOJvel1igPgOiAs1rrZV85YJXrrc9ZY46pVGQKQ3yekIrqt0EK0vaAgj5oZyrRLz94KdhvIpCIUMd+M05SmsY00TRk827U95uJFIInVhtoOKMS1CqgSM1yQIa/IIKz/s4LEl2UelFpJEOmaXLT9gan8Bsdu2mXOWE2iDgTUhjhHSx1rYeN5EPajgxJq2tyvfti61Ohcm+s2CPxSV7LBjGbAZq0X/r6myA7lLsQQo8uf5F/GMloMEPtiXUyyLW0EJI19rEx68+ZtpIUPNoESaao/sS5ANWs2d2VH+YVdF+I/ZvuMKKkfIgFbf+JvjYdCHS0qZ94BTAzNJdhWzOqdw0ImHLop6nEwvJI2oJ5GWhZGw9jP0WFmwV65RfKVPOZRZTPvo9W2tCb0ZQo=","layer_level":1},{"id":"f5a7db4b-765d-46e4-9395-af7bbe8d8fd3","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"日志系统","description":"logging-system","prompt":"为 Luxsin 应用 API 项目的日志系统创建全面文档。详细介绍基于 Zap 的结构化日志系统的设计和实现。说明日志客户端的初始化过程、配置选项和输出格式设置。解释不同日志级别的使用场景,包括 Debug、Info、Warn、Error 等级别在系统中的应用。提供日志记录的最佳实践,包括字段命名规范、上下文传递和性能考虑。展示如何在中间件、处理器和业务逻辑中正确使用日志功能。包含日志轮转配置、文件管理和存储策略。涵盖日志聚合、监控告警和故障排查的实际应用。提供调试技巧和常见问题解决方案。确保内容既包含理论概念又提供实用的操作指南,帮助开发者建立完善的日志体系。","parent_id":"0ba3accc-326a-4433-930c-5b951d4e5dcf","order":2,"progress_status":"completed","dependent_files":"pkg/logger/logger.go","gmt_create":"2026-05-27T15:42:51.5497484+08:00","gmt_modified":"2026-05-27T15:58:35.6424946+08:00","raw_data":"WikiEncrypted:U7R4DE1TfAUvjZuFqogRLnOghdG8YONf1+EXGFfCCKN64XPQEDdUeRHtBVRbgq1RTfu+PHdhhtH3Ub4edjV7OQOmQQeOhgljoi3HGtSqPVCQvF+mHbx8hRLjpVdCwHdXLvW1Ns4CDnqx/UVLCA1IVbunG2no8Z4rHywszGt/xnqU1gTE2kg8t6xAVG7XfQvH3irlIr1G7/Y2/+RWxJWLz/5H7tsKGpmrGhw8RSd3hVQPhG3iSp62UpI4Jxk/d+OrEUWPuwqJKtZElc7QKOmFaL2Ou0Xm32XwADHOmjYzJyNTlscSdcecUG5KctRPumjoy0gNP7qCfrs8gUDdHMzL6ttn23qdEEZPNbh+TYWVIWnXigmIb8ZizIpBBvi8lgdSE6OX/M698aF13vXXWYsV/gWx1aMFvyo0U2/RQWwm33tMeBdIwK+36gcgiSFDbE0S4b5hb02VMCuasWvPPhMQloVwTmpRX9jLlSWIxElvqhN6JW9Sj3tn9asGgB2y7sZ5hd9DmoUifCyNwMYaKDr87XcM5YtUgyXFquhGaFcY2+CEND5OlVHePB/BTWoyBiDCLgXpicJborNdI7/Nscjq6w3smcCa0ShFdrQ2c1oxL/nowS+0Np2YD/mGUBQfJGct62LTGIm3ejRTFJcHn9bsk38oD3Cjniur0JFTE+jhM3c2BIpd1A8qaNgOfFPuLR038U+ZzBwSYPk0ujoLLSuHOTfKvppASu1MMZuPFcqe8LG+ceVp0xjkx0BKLaD6HrjbpSDMXXMVbNnJU9shT522RABkZEeCFibRDEdFCO6l4jLtyCPaHZCPmGOvHOj5lizmbQtmuBYHEEG+eGYYgOBv/wev3hPI59DkbhTIXpIUwxQ1+0vjVdabnEPEBVxCuGVGDC1Aea1CzWgqA3FLHFtIDExYaEo5YGKlWQn85tDudAmcoD/Ru2NWdGGcW1Ypp7/NWX/VOzYfaGmEEYVbZm41M/SfkgFawUphZc5M5cRj4OG4/tI8ZvDx7IcwIwu4FwPm+21LyFqD1gm86CbkOJ7lK1BH1kl9o+SMXw9VA3snaZ4GGhpaHvgBFvZLH1oT5ZI8GXrTUvuCfq+i3DrDdnuhElM+h3ewW+lMfyvo6DUCbSK3PvLQbsO8EEhz7rAUVsLkZVc1MS4u5dgtYaZte4H71gQszMPb5kdmZW8ys3JTlZlpjsCOMDj+LregbU7ysvd1xZC+GFB1f9RtMNfyIvB0/60vzV8BkymNhb+K5giaTcSKv94wsV+wIVqxR3DGo/CyCs7AbdIof2wAC5ApaWIxrX7XM87JVZkSCS1I8KGN2fVloq5p/lFHvEn+z0UdPd7f4wsFgOlczB3xEz0FolPe/utaK7QT5lmhGjbdBcGumMq8QwGZYYsZk8z3RCjTxi+NXI9NIx1lGzzdjHtr/l0gIU/8oiKa8KYSVjsH58LX3gtmmM2UImLU6+FrVEaFDK8wBB23SJgK41j/mcvuuwJNAg==","layer_level":1},{"id":"8d7c257e-b299-4adb-adfe-bc0ddbf112b7","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"核心模块","description":"core-modules","prompt":"为 Luxsin 应用 API 项目的核心模块创建综合文档。详细介绍业务处理器(Handler)、数据访问层(Repository)、数据模型(Model)和统一响应(Response)的设计和实现。解释各模块之间的依赖关系和协作模式。包含具体的代码示例、接口定义和使用模式。说明模块的职责分离、依赖注入实现和错误处理机制。提供扩展新模块的最佳实践和注意事项。涉及性能优化、缓存策略和并发安全考虑。确保内容对初学者友好,同时为经验丰富的开发者提供足够的技术深度。","order":3,"progress_status":"completed","dependent_files":"internal/handler,internal/repository,internal/model,internal/response","gmt_create":"2026-05-27T15:42:25.030488+08:00","gmt_modified":"2026-05-27T15:48:30.8195851+08:00","raw_data":"WikiEncrypted:bpQ1QlMq61uqjeQzqQaeFJ8lEiuSQp7TFZGpUgKRJgaf7PT+zt7MmzNkqVEU0hd1ivmcFoQ5NrDuJye6YrJgMhvUC8x94MX9xPrGNOjZI+5X4c+vLlR4Y9di8UWaiF3ePMWFHZ+l5JpFZY14y0Gmj+mg2jg6ynoSHd4F8iD94Ksscd/cHjiFkz5KV1ZDKSVo0Zk43RijuZRD+ZvrVDu0XmtFrZ3alp/u48vDDtq64kS9QZdDuR6Wlu7qiT9NwgX7AiaDJqJ4R7dPgxgm6Mui+BQ08Oeq08iURJiXTO07UxLp+uzs2JqJsTrShJlYr/1DePotYHyji38fNP/IbITC4bmDtRqP/5BMbZ7k9hlh8bGx0EWkS6uNkxCgFDuaNHgykTVXSiKrKRDSWgLmKInyhnzBbCcH73bVc+oVtcoSBXixSUbTl5gP1Ig+Y7wyWeOoPHPDdUn77U/OcrSdTkZNXYm4+/I1eIujWEUg4gc3eye74LI568bySPdOk6ZoKG7u8TBv2E0BC3tLW6pJFD6RRArV26sWYSdHsaCumsfOVUgYjGHkhQhsYwKt6buEJZTy7sv9olRDHoi1qy0k9PbRIDacX2cJll7l0u0jXnnztZGx+9+HQ3H08P26RSQB9mNCVtihrb3zqn+nn/fHaVP6TLlA/fFESM0VIGwPT/3NXgKCrGhgeLaw610W73Kv7Ad4zTf/FWsHJ6uv/LC2qfCo9Zt20Voo8N5CmmqTJah6KgVEvW8v7BoekBUzC7ZPGH4oCJeTk4kIoVfGbX7ACMu5mplivQVLaQWQfMElRG+s7oBrbN95CCShpR7S7J59DpnFX/IbgIScrW6X9QGEyoBrPe4S0LA4tnTBU7d2g8RsZDWloZJZbIBi+isLt1JA6fWqwfZ//t8ItkkzPmQJIFJNOR30i9z3wqQAHliGK0F+EqacD6YYn1Ryvt/d8nhRJJDZ526J2xz8X2pZKja+oeGAwU+edSxkfqjTZ87fqFunqnQMbZ5zjs/JzrFvTHlR43EYFU2vuK9YgZ9UJIHtxvPBAubNcuFc5aP4J6GqrxUrF6h/ZAfD1Zpj43GWztuTnhRy2w8l4xy/B722d+K8VBXpE6k7/b8KNnkM/5fSrqgzE1pAlbi0AWtXWfP8pgWRLo+r+wE+BALUxNC80jMVfYGnnIvWU2rzgcJ1YmWOyznQOZu/mNvoUI5AqEDSCzI/ow+21CW0sEvfypb9HKynhsg0JfiAAPvdBZlGmCYs1rcrjp5RoagygMzTGEu3jQYQqwRC8ctiOr0SIvoGaRfcZ2XBEPnjYwAQv2ZdUT7MB3cDleI6Eevvvz1GwXLldlBytA6hHLrkC3mCCZW0+qJiwahbJ5Ayi4uuem08ScBJFqUVxqndMyTN7+7v98xiEKLumUia0Wn4eDjobEwAEosPbMS2pI94b5xVXHj/QHiBfCTdbnlX+vTiLOFU1YW+322ZmO8m/7EPabziKO20Mgff19WPSw=="},{"id":"e2d8da89-04c9-4fee-8dfe-adfaff79c9c1","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"统一响应","description":"unified-response","prompt":"为 Luxsin 应用 API 项目的统一响应模块创建详细文档。深入解释统一响应格式的设计原则和实现机制。详细介绍响应结构、状态码定义和错误处理策略。包含具体的代码示例展示如何使用统一响应格式,以及如何处理不同类型的业务场景。说明响应格式在 API 设计中的重要性和一致性保证。涵盖错误码定义、国际化支持和调试信息的处理方式。解释响应格式的扩展机制和自定义选项。提供性能优化建议和最佳实践指导。确保内容既适合初学者理解响应设计的重要性,又为高级开发者提供实现细节和扩展方法。","parent_id":"8d7c257e-b299-4adb-adfe-bc0ddbf112b7","order":3,"progress_status":"completed","dependent_files":"internal/response/response.go","gmt_create":"2026-05-27T15:42:38.0136404+08:00","gmt_modified":"2026-05-27T15:58:41.4408299+08:00","raw_data":"WikiEncrypted:iaIcfwdLscso9uJYzNYkBwQmMSDrN359f9FMHjOmg7ClR23tbv3dTo6S+mZPVOhFdDzmxIISHKSsp2mIHtSHucIsRTVIuVJBLVgxbLtBw+vYpBthrkKp7ZsmnvjWGy5He35k2/5gy4bT+0fHVhDxJakT8MktDZ/BR/eSlGlnIY5RrC7zFB41KSVM+DwzGHJ6wFsSBTONLyyruobUVduEU7vzMZj9sgtAiHvFL9P2SHh3KcDKpQJaSF6kzMxfuHz+RjE2JrSS7jCHMh0pHTgddYdXs0A21pKoq1Cz9ewRb59irUcIZIJum0fCoYabjhhlkabgVWpIZZl9yI9tYbNT404kkRaJxst4Jxb567lxVXj7z99S7Tl5HxaCXddNPmiUawv0vJsTzd40DhW2ZDAviR3GRAUDUyfw3/+7dQvIEQR/e/MrQlblG6A55TurcS4CgAI1GLwDIWQneG1pO+BCAgXtQPSmpqB7BgjGxlBSb0Mc7Ozk3IATXCWF2Gz/3rMiwdu/lCfL7wtHHu7F/8j5tAKZVzSyjHmJfXLPZ5kHt6Y7AdIc5TZNDyi/LrJoXnYx7u7cHY15CrJc/tEbrztzQ1iElkaTNZ08r7RV7F32Es2t0ynCOMCVirx+HAUHpAOaAdrSai+26wUse4xRm/FkwNZtv+w2OCnTZs5KwT9H5tUVsmqVWyBhSeXHtGkuvUyqx0IINIHQnBhkIpxCdOwzkXTumXWy8tolLEPQSJECMUeYwxFHpvtC6vAQckxS2amrDMWK/GTvxacGzKQom2peJWZZJ0bUQ3pgm7a7YDJZHCC3jH0cq0BoCXXUU9d95pauWlQP2/IZMyuUcH0X72/xZ5xKYPNJuyeVPVzFTjkaZDzPAbyCCKrXJFs8tjyuNkSuRpPaAh4kSgxL6/G5WXR2Fwe/QG2rpK9IUOEv17HBevzn6Dbty0HUFB3zxObA10u7Kx+3rfpfr6yzO3k7y7wWuKpzPhYJhrIS+TCgBZjcTIteFPYWuoj87paGFovSmvqEB9DkBU7xawc9cRduspe3fMlYvFSHJJnaIDWeejeQuwwFd0JoBgOkeMPtCVTkj/SaZimKyefQLYyw5AAu0rj+5IqJ+HGhiB456prnmou8yIC9ws2NUc/LeK3qMNaM1Tkf4lPPKffZ282PoNA1rMelkw4Vu6gXVHkuVRLdCqcUZteXbuH+Qyr/pATu1oc3mOV34LzJDJs8AC1k47iZmX/sSGNZ957wolJ0WWZow24CiUWZtP4/Pg51r9qwhsqMAp7p602Sup+i5M11Gg09u0cyRanD+hMX7HCnsebpyCyxZVvB9jhaZJ4sNdDLWZKhRcBfm4gGm5v3l1Ep8tABF5fwEQ==","layer_level":1},{"id":"4b0e33d8-28d6-44dd-b90a-57af5c6cfaa9","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"系统监控接口","description":"system-monitoring-api","prompt":"为系统监控接口创建 API 文档。详细记录健康检查接口的规范,包括 HTTP 方法、URL 模式、响应格式和状态码含义。说明健康检查的各个维度,如数据库连接状态、缓存服务状态、搜索引擎状态等。提供具体的请求示例和响应示例,展示正常状态和异常状态的返回格式。包含监控集成指南、告警配置和故障诊断方法。说明与其他监控系统的对接方式和自定义扩展点。","parent_id":"8085e1b7-3658-4490-8b52-9a61f3e79976","order":3,"progress_status":"completed","dependent_files":"internal/handler/health.go","gmt_create":"2026-05-27T15:42:40.1914576+08:00","gmt_modified":"2026-05-27T15:58:27.2611572+08:00","raw_data":"WikiEncrypted:gWB8HBj+8+/15rQhXgtMjCM7vFjnlRAhPoaEN0ftdCdBUTnleag+HHtjerxF8Yo/aNSQCvWghRAmFaNP5Ate+OnNgrZtWxUTlolKrwVliK7qFYneTgLhtk2O0DExsEj8rE3wciXyMoLthA27VSFS1hEh1vYjSsYzEvIq9/P7ebtCx3WZIPnPyfLgw1cXSj9siM5kzk0nmt4Ccf6gZaDZuw0Bp7WplXSset9XbcxKPL+MMIzax7BxVHZuxA+Xr0km0IickRzt8NBUEER7TSRBv327JwCiAS8fQqpTdjIoYZaoZD0fB/NTnHP+9Ak0Q0/FKYlXGSAVzh3CgkU+Bn+Cg5ZTP9yyUsZCouns8PsujUZ2npUR1PLdj9hkBS03HbNE8lSbaX8OU3ViNNk1DL+T4pp2AQ8kjAuM3wbk0fgx0dNKLVy5WY3PlBQ20Fx/tZebK5ym8FUGSHChyldzRq6ZYkNg/glvq7d32Xl8fO5iVdMwkqg1pt1O211CYPFuEOhq+EKjmlkG0WCs/2ee5aQCsJwhqN/Ya6IeDgL+9Db+zeM6x5OiHG8FmYl+N582mzAbn2+xbvZqxlMTJOHjWoHb2LewryAHz2W6QEWwOHKtx09+ET8stLXhUowUkW1gy8qjK+E8U+dj3UNXDeo8cAiAnEvjdmuNwCC15pArY6OHVC9X2U5Vpj5U5NUQu2JMoFgwLq4N3PTIxjJ0A+VzuBk/QcYMjmo7LrfP3y+wJaUZn2vsFEIBQ2eTRD5a1Pe13jvgLYJNHUEI8RJfy1p2pZIQyFO8NTC8GoKJhnSQ+gTu14mmS4S08TCy0fu79yKHrmq1Mxpx9FQeGvkkDg0fwa8pu4D5GP0ERsG/CD6v72/U0UcOO7d7Ncz6OJ+WItEmGuCm3eGoUCNtiJjI5slrLxxlLM3hEF/nte/d/5N2XBVG/xn6/YDvrzqEyAFgYUT/UCUiuGiHkv23qhBSjI24q6ODYIHl3EPfycQLGVtjFwMMFxs=","layer_level":1},{"id":"f351f338-eeb0-4243-921a-eed11d063072","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"中间件模式","description":"middleware-pattern","prompt":"为 Luxsin 应用 API 项目创建详细的中间件模式文档。深入解释 Gin 中间件的工作原理和执行顺序。详细说明 CORS 中间件的安全策略配置,包括跨域请求处理和安全头设置。解释日志中间件的结构化日志记录机制,展示如何统一记录请求信息和响应状态。文档化请求 ID 中间件的分布式追踪支持,说明如何在整个请求链路中保持唯一标识符。提供中间件开发的最佳实践和性能考虑。包含自定义中间件的开发指南和调试技巧。","parent_id":"0506348d-993b-48f2-936c-908972f149bc","order":3,"progress_status":"completed","dependent_files":"internal/middleware/cors.go,internal/middleware/logger.go,internal/middleware/request_id.go","gmt_create":"2026-05-27T15:42:44.058506+08:00","gmt_modified":"2026-05-27T16:00:02.1508768+08:00","raw_data":"WikiEncrypted:KoBWq/Q7Adld3nvKT6YAXjbeYGdbE/D4CStunsqJjgl0jPyMgacfbAcsG69IjV6W+YAUulkiH6yJh6guJ8xsLC0r674enptjON7n1TyvEmDvQ0ts2hwoFwrID/aMzsWc6ykTfCUAJOOlgk4w+ArbzUldUGx6slnJqOHO15q0hPQH7GaO0RDoayr+zF5Md89ka3FMbDJBSe7XpA6zdP+wNXSd04XmKPO4VRjZqmJkxAGC8VFm4yVB97+PFqSyh68UCvChI56FzzpLF/5BFK7vdhB4RKqA66aNRDf4DW25UaKG5whiuqjk/HYzMhxcvIfnxNNQENyjxYlMX1sZy4HsMgkgx/uFM4++tYIvF03t17sV6inMrzPeJGGPuhlz/8276En11T0U+vrBLHt5cuHwwfT9/TbnmX6ii+DQAK6bIQ4TouGACknzbAKKYD527I1FVSQgI9EoSN0pbR8fm6ONx31WoIHCHWp/YV+KoNG4BqHkATQ6ytaki/qaUL/ng+odBZvDmXBjiEPo39VVePVK04bIdD705zKajkzvowecnVXm2AKaMJ69AGERz8Yh8e6TmJNgzoBcYyY4mEun80jcRmapIRl8c8YHgH0NMwaVSwcLqiudxnv3oQr59HZzPqbA2lsjZbIb2PrDETb2QeWum0Fm6rN2Un2jJWVpT0EznojYQrzEaNxrIPMOL2v27AiWIqzQv0GQ3sqciy6SmZiuq2wPG7HlS2A2zZkroeKz2FOR+HQnQPJAYla49YW7f6gn/xufwFLQ2P09Vv1PN1pyxXpNDEuiTqHaVp2kzhv9oqymB7xkMgUWjzJxA3LCPmaLv++QPEBFdy6p8cW4yb4I4EhhEKGmNSkUraKRcmosg4NWFDcipy8qHZXRbF6teMWiB3RRRisWUnfoZUcGgAFFGscCtU6FRbrdh8FZz1dO6dwy+o2iUkSDe5kR8tnRRbjY/fvtiPqMjoBsHuvLo8VgUj/8p4Z2FzifMlFm47HXFcnhNcTyNHadq/BKt32asbZMkyf5mwAazzbaJZ9zE72kKw3V+IXEq2k8PQFilZeDtHzxWba+6jseqSydPEZeopZAtR8inj9373angdQRcahgfTWP2Tu1JM7pp/nx4e/XGXgcV/eAY6K6bheHMiVhe8uqpViCaPM56DFwiJSu8jM4uJ7c2z87Ru/IU7jBjcCel2qrMTwxGrIxl3LJQWNXYmFvWXKFkw1YzGjfH/CiNBiu4ygHy7YalDmDnEePypwhiyZ25shL/pX1OxbV8m/tNZmv4AAk3Q9YjR6tRGu+hpIeQQ==","layer_level":1},{"id":"8085e1b7-3658-4490-8b52-9a61f3e79976","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"API 接口文档","description":"api-documentation","prompt":"为 Luxsin 应用 API 项目创建完整的 API 接口文档。详细记录所有 RESTful API 端点,包括 HTTP 方法、URL 模式、请求参数、响应格式和错误处理。针对每个接口提供具体的请求示例、响应示例和使用场景。包含品牌管理接口(获取品牌列表)、型号管理接口(获取型号信息、搜索型号列表)、设备管理接口(上报设备信息)和系统接口(健康检查)。详细说明认证方法、速率限制和版本信息。提供客户端实现指南和性能优化建议。包含协议特定的调试工具和监控方法。如果适用,提供已弃用功能的迁移指南和向后兼容性说明。","order":4,"progress_status":"completed","dependent_files":"internal/handler/brand.go,internal/handler/model.go,internal/handler/model_list.go,internal/handler/device.go,internal/handler/health.go","gmt_create":"2026-05-27T15:42:25.0310242+08:00","gmt_modified":"2026-05-27T15:49:27.8891715+08:00","raw_data":"WikiEncrypted:aJsVvsatVVT+Oax9nwx6A6Ka1Sy3/Ax3fbdr8CSPsFwpSinOHdKPUiaO43Q3eH/wzCti2uFNYtfdvQWqQWpEsnbUBpqKCbRzHWFAT9Lm270y0Q6B1UE3nx+gx/6onwH05kgU4aSL6Vyf/ZaJTFKBZpR/hASnZEkssdX1yTnZq4HGLCbeLR5p3acQeZtqIab449ZqM5BfhYg1nC4veZGNU0ZbTVY2/+9U92yhi84zrKmyuO7gZe6RpeJW+3R+pbFduijY8FtGcUobIv+f3QcPEH7ZWqwynHO+v7PrlM8OHoMZ4jNowBv+/rK9cg9v/ZMBmZfMQEKxsZsOp3fl4F4qYtSm10mD/w81n+As4xiJhZiEZyEFs5J1d8Z9Vy8wXGEIR7fqm+a9zy8Fsu5byzXecYMhxZS2ERHZx240veYTNST0o1BZbq+K36QEct8vD7FCALNKAcaZ6AOkQ3ZeFQRkF77ySrit0wubK5Y8hJZIiie/lo/zKRe7AcNPttvBv8m/fwMlN9KEVR4OUGV/gJU1svwYIsZZEnrCMvG+y67NRx0KVjqb6L6X54uvguKz7kxDUMczgIfViz8ratyBmUtc4FfEAPRsjCROGGkVoDEN/5w+ZyQXhLxP3xXUKd1/P4J1avMlerh1CuO5ejlxXeucDZUHgRDjHUwBXfwGOMvhjOjwHiCV+WGml1tKFYFwCTMROq63PKS+JNp0RfgSHK+FtVbauDr08rz2vyPg98+5DPKjnqfdczGey2EZtF3aUyS0f+eIwXUXUtiq/w14fn2wmUy4I611KQjjMiUaXGeOEzE6IIDLjUY2tTTxx/aPpqJvhEJsora8N2/6a3xsw6yT6z46cc9FiIhyEApe9UKpdjI1fdeQuYjErjck7jRAWTUhfVXtQU4SeD3ehMV7Y6r1A8qOMU0h/oidZfO1nAE/JYP3YBXGYHS5oK7bg1MAtFEpo1o6sSWrginCktGk52hMNSGoV8nehuwtZxdhXoyY4IXjvpfAFsXH1Hb/mkNuAue8aL73FijK+a6EhDh03TFe0zLWJHxx6x6Auvo7AXWOBCnZmEjakamzlcsky5YeF79LZz5GwUfWnRavEY3T6FwU1CLhWG4vTlOctHSDbxPcek4EYQrGDGh3pm9EKWAbxxjSxaOj+mjfVS/BResVW35tX7QJikLDMO3bAgq1R7pKwJkOq6LKlFGQid7IX3oBWU3vnf68+OZYTo3XbhF1ibJBtGKJo9LJnus5LWKyXL8OlPBZ6O9My/LGSv/u8SgYidk1IqHF9E0GEd1n1XivRudgVPhOyyChOZRTjrfkGYZyCG9JFtb07mHqu1GTttkO+yrSl02PBotGLbcN6fVq9tA+nKBe9hyXj1jRm77qabudCbBq1WfADA3BI1naBKwjd/hkC2WRFu+OobhwEa5BWjLR0S5hhbkX9l8NggWqYhlkNoAGqfQHPfV6TRRUMT+YxiAtQS4xyBRe3hdSlLTfFn2DqhwtS2Lz3mdjaYxot+rBGShwUkEN2YW8NTWAPTsPtxYLGPhsJEGRMeC0e/0pGacNmr/a7f0BDYZipNYXZEpoLO6TRDR2814xSzHlyQHssJNrGjQ7GSSOz1iSfL3l8GvofUZpMwsaNKmd0njucNMBp0oxVTp+o5hLPEwLl45Rkmvpz8NLlhicrw4UvoIUrMW1vLOUsZsH+zfQu//Xuf5MvVE="},{"id":"c79882f1-420e-4d6c-a40c-dff8c7e8988f","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"组件交互机制","description":"component-interaction","prompt":"为 Luxsin 应用 API 项目创建详细的组件交互机制文档。深入解释从请求接收到响应返回的完整数据流路径。详细说明 Router → Handler → Repository → Database 的调用链路和参数传递。解释各组件间的解耦机制和接口设计原则。文档化错误传播机制和异常处理策略。提供组件交互的时序图和数据流图。解释异步处理和并发控制的实现方式。包含组件间通信的性能优化和监控策略。","parent_id":"0506348d-993b-48f2-936c-908972f149bc","order":4,"progress_status":"completed","dependent_files":"internal/router/router.go,internal/handler/brand.go,internal/repository/brand.go,internal/database/mysql.go","gmt_create":"2026-05-27T15:42:44.058506+08:00","gmt_modified":"2026-05-27T16:00:37.8856299+08:00","raw_data":"WikiEncrypted:4Zqjl5aZEo1Vv5NKBpebTvIjOs8PtjUiIDyDFsBcQ7xcxPCSMrQFGywF92hdzdj0/Ns2K9dSEDwOkKxz9EMCD21sNknfTIWpC88CWR1X7WuNlX6UdseDM8NhczwhCNaZN3vgjI2RCnPQ3swJEmcffGwsCSYh9whfm7CRrmT1BsJAsL0IISPTl0j7Dypz7NiXQSwlVYOWLyyU9AbzCZDbJ3PpxFYDDzPxaDuVWPVPXLf/wiv9mA5vqzDDmAe1dkhs/NMef3G3n7dFGNy8bE2Kb89TGY1mWlLXsD5yz8TOX2FASKkcwVpddx7H1G4BCCeVxnXrAcc8YtLwtNLqhtYwO9sMQvaZN2pzzBQEBT+bF1KsPSISX/kKBTBc8lKQzbtXgZmpqxMtrqwNvB4AFvHvruBwy5i5usgPxShB0x2ZSOxEQKepTRqJ0sEJxpCG19CRKrqMYxxZMufZecyJcMUUEey9yDRO/hzyy2/pZqn2ZFzkp5KdT+gamSrlq3mJSAJwW1wr584b5P2Bept3By31QHtVKY46YC4WYYzzF1oCjY4mxHTxeyK3KpEfyLa/UEH4JnKUxpA+XrgAxuGhWNQ1XSDiZSY0bXbpklSWH5wVZx9XrhNt1Uv4/Y71JhvdR+D6xb0dEQGbyblvvsAJ/FVnU0+D7VEY0HA3iF8VkSWyCEqfQ/JIf8Ek9Q5LAgQNfEMhoPlzjGIQgoKYiJiPUQYjn0iYa7VDL7waXMyHlwcRIghsmI3fkNu8lRCggKYPTT7Q5qbf+1dABN8HQfKSQ4G3Fyki8uSSBxsxPNBAv1YZhpejX8VnKJ4bcTlb7j+urjrCDfKdzBS3GxW7JA4R3YybG4pIpCHM1znO6FBc0Vw6nOB3lfGW47z0MjpFN3fcV2sOG8ckI47G7KXLi5mabdHP+LyR6s3mSWlLLu59L/RXid0QNasUkkPc7dDbDL9DeRvMlBo5s/BB0qZ3OplmHq79N7OvD8hC8Exo5pNRlCuQXyk/ki56Z2SI5K/AGP1lMNV0tGKe91nJRDGKcxar2YY7tk+dtyGPslSVCeJXmY6OBED+ODDNJ8Ro8sqnENFk2pjIC2z7i8EinBYXDVCn8Fne/tZy4ylO64uHF66MPf3pwmepe2hwAyEDF06K+eddiX3JlmF9xi7EaZS+y+R6h3ktk3ku4KD0Qd86UyfJ5b+r1X4JFTmE2KfIaTeUpCRtOdXJ","layer_level":1},{"id":"cc6acec0-b687-417f-9c93-00f59162cfed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"数据库设计","description":"database-design","prompt":"为 Luxsin 应用 API 项目创建全面的数据模型文档。详细说明实体关系、字段定义和数据类型。记录主键/外键、索引和约束条件。解释数据验证规则和业务规则。包含数据库模式图和示例数据。说明数据访问模式、缓存策略和性能考虑。指定数据生命周期、保留策略和归档规则。包含数据迁移路径和版本管理。涉及数据安全、隐私要求和访问控制。详细说明 Brand 和 Model 实体的设计理念、字段含义和业务逻辑。提供数据库连接配置和查询优化建议。","order":5,"progress_status":"completed","dependent_files":"sql/model.sql,internal/model/brand.go,internal/model/model.go,internal/database/mysql.go","gmt_create":"2026-05-27T15:42:25.031564+08:00","gmt_modified":"2026-05-27T15:47:52.3231001+08:00","raw_data":"WikiEncrypted:veTYwq2y4io5qXerCTrkkBwdhOAmcMQTz+AJLOFORhNFeFTAN7xitXLxeRr3T1sKrh0z/6NFLuxfhi+XJSCnWiA4bOgOqwoJp44HwLqumks3fTrub2qfkx3kGo8Vv0zwaj7mBYt8gy+IsUDExaTSt3z0xSYoiMJRoiBXhAlNc3py65rPX7myyVo7X5aWc6AOTgywn0pmK3XweYJTp/OGuhexu3owdi0ojlyjLM5fhrVaPCMSjZlCmYDKjdRDiJgH8SUT81h6jSMp8DVFvov1TzHKQO6fEt1yGV1rxGiKDrIs4QHO32th+o7k9tQYH6CSnDoMYk4ZYZUaCxNKZcIp1I2u8cv/mKHnKyIHV6o157UJotCffdSghARHRgXNbZRFJKw2LlW0eFfRB4rXMpkNhwxyCyfJuS9HOpH2lBPYNg37sMa1V/Eu3/Q6COF5ALxno0JO2w0V8DANenW4lwqay9TduAWeV/Wd4/dgnc0kGDAAqO5EpRQJ05PlZiAK5WPSeJcE1FMCShp43SRUeu0Is+TvJKih/ixtdr5ZN0vVE+0okdcGzxP1GZGfVlqDy80vdMZ4WJdIHu89JzvzkS2ptiMw834+utWhBxxpJRRDvJl4Zrs1QcGgN5sZCKlUYb1Fb2NOabQvc5fyx8yVZnMaEZpko17DLilQmJCCgrVdi3p2OeIBmnS81Vz5vmsF+754mz9081paU05Zvu1Rlqpklsnxlsn1KOJaq7CxyN1Vcn7SR3cBEu7L2hL7vLqTSlTilbnVUdfG+udOd7z4QHQfU7qOkWy5HkYrcuXrTycl2ufPlCeAr479dPNQ0Xk947AQs7w9xu97C9uZA8SNXmqVZxe/h+O5HjlMfIT6tt8mxvEaeqK8VOrAJKUIyPjs/joJZGQbF1Elfpx5bcIUUpIPc/JZZJaeEsgIox2ZEwOooQJ8nd8HwCEY747ONvgtaJ5q1ezLwIyrBIAmhB7hha3NW5XM3pTSnhhVF5uzeW/SrLPa7/kLcN+z6qciY2+1f1Di3u1j5vjLI3vVhWYxtJeb1HFtQ00iXdel0aXgFh1WDymjQp+3kFFEFC7ujRqludkNuXwc4VxtV1bCbiMRuM9Me/1hxMYQsxfUqeYWXsbBN+TUkt5+5dKDAfjIrRn1uSgSIvVIhez+1s+xqnAoLrGJnH10tSz3gtZIy6HHkEXNgV+uGynd+yFYQPyVzqFl6ycwI4QJr3nkZe2cmn6FJQbfcuksp/k6A7IRaJ1aeEl9xJZ2aGXJYapB8ZgUNClFNIABpvB/G/YA2vmhfZp0uQPvIRc1ND/6GmGWg8sdS3QLzprJuywzZHaPbYAlocEixTYrXFTgWuXbhn803vpaRzzwcwy39VcvjxmM8EPgA8UchNi9kMeRVrOORtsa4ws4iQcDlrdOvw9lPOco6pAgMVqHWw=="},{"id":"0ba3accc-326a-4433-930c-5b951d4e5dcf","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"基础设施","description":"infrastructure","prompt":"为 Luxsin 应用 API 项目创建基础设施组件文档。详细介绍缓存系统(Redis)、搜索引擎(Meilisearch)和日志系统(Zap)的配置和使用。说明各组件的初始化过程、连接管理和配置选项。包含缓存策略、搜索优化和日志记录的具体实现。解释组件间的协作关系和数据流向。提供性能优化建议和故障排除指南。涉及监控告警、扩展性和可靠性设计。包含具体的配置示例、最佳实践和安全考虑。确保内容既适合初学者理解,又为专家提供足够的技术细节。","order":6,"progress_status":"completed","dependent_files":"internal/cache/redis.go,internal/search/meilisearch.go,internal/config/redis.go,internal/config/meilisearch.go,pkg/logger/logger.go","gmt_create":"2026-05-27T15:42:25.031564+08:00","gmt_modified":"2026-05-27T15:49:51.0048099+08:00","raw_data":"WikiEncrypted:sbHxgqwNaIQfuetky2uLRyIOX0QcV4F0AILzzQc9GWKM9RbXWkeyZypYurT6q6/jdshRRky9i8euWVz+RwzDEjLSf/5TBE5hqVfwtdoniolHNIvg/V4U6o0Uy5LnDr8i+8lIxu2oIBTUlsaoAv7w5iNfekHSt0q6goXepa4aMrqdtCXd78BSUFzGGoqTjFCImp9K2wkx2G0tXqpmpVp7tEiupbmaekaydnQiLfWCTsuAhiIixmNf7zhMvQddDdz/vFMxg8EgQjBYCRrLJfa59w1dwNOsh7LD7B0xejH7YnQkazsXQPDc/l1CAXfLcIcNw18T1VJ8pdgRZVu74q4BhQ1oz+mkyNXOXO7uFYyROvZ9+SHCV/p2M5/xkEo3CqCAP+CEI+59/1ozZqaYwitDifyO7wkSXdFb88+pXlAGZCDRQ9iQ/cMLmgrf0UWW3ZQdLAgo9PRlh3nTWGEe+/rkwMoVKFhvAJBooUPS4OIGSMvMAHQrbwvx/poFrNYVDC84lwkm0R3PHjhB1K9cOk9+6tZ/6F7kp3XdCVAhc2U62dBlI8hDoyGxT1Jl75o1y6mLlxFRleUEYQIFasnt0X1GgKG3oeRJfDQBnoW5H7CZ2Q2VQG/Mam6+pMMK/r9diCnIYM5ogiqUj7tr7iypIS+cfkJESScxOnrfQlCN0Qkd8sEGP4K1s0MOXaL2n/I8jL0akBuCdC6r/XwkXXVuwyvONhBo8AKhjlw4Z80l8g9IfCLE516hSHdAvPrqJdQ+uv2kxoDUCbdnki86NLEmUIu9E8Cg/ctAE8bB/3EZ8W0jCiwjkJMG/7zWgjmRnEZEB3qTVgtRa2KlCUd2QJmlRplYoHxZpXr+SKdJwnlA3vad9yfoc20k1McD/WIU1xyYcMO0RlCh7D9YFySaMEU0ajxvhY0IaEzEkSksTTGrckLMEjYGic+cCNwIIo2yh4+RiMTixfUw95/Beb5C6YA4wOzhKhEYwBsyKI1mRNwEf9R87hDhmK7a83qw/cRy9X8q37PVUu4kfKUP00SAvuQVxgyEp5jO+UOmYubsAjFLqt+BLYCvX1BLVs34bTjTZ7UdPkyCewtgeK88zHgLljGSzyR1bspq4eozKjqoiqavFLVqYzTtwTuTtg5HzkqhFBkHceFCQzoxpbcgdyvxHj7rIeuao76nbRqwWFxM0CL/w2bwd3YhIHOUtNX1PHq5deeuo3macM8moQOj2mgBCoh3lJdc8w+9qpT/nooQSlJfOQ8o9+an8h4sgvMbAbGt6Xt34gkJnbQ57qn+h6fXefwWrxaekNiXWaEYYRQlaazmSk/IH+Shr0OZVtpWlkFn7FjYCqe68ScAMyhmZUJ5Pkw+Y1rENFipss0BlI+diw2G12+r1GuERworaWCvas6w5A3FkFKC66BELhQjLk0vsY9c19ea9GihiHshbDr4OSKya8FZ5nM1jK+4vN63WFEnIS/vVAg4NxpzpBa91cZOB3hHRNKWuG9Zv2L5ASdR8D+2EwNxXV+A0vv1YgBt6lCQ/uDGyRePhYr0xyoQ7QfWpRQ+EkUPCA=="},{"id":"f4f8585d-1446-4f49-85b2-efc715bda6cf","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"部署运维","description":"deployment-operations","prompt":"为 Luxsin 应用 API 项目创建部署运维文档。详细说明构建过程、部署配置和环境管理。包含开发环境和生产环境的配置差异、环境变量设置和数据库连接配置。提供 Docker 容器化部署方案和 Kubernetes 部署示例。说明监控告警、日志收集和性能优化策略。包含故障排除指南、备份恢复和版本升级流程。涉及安全配置、权限管理和合规要求。提供自动化部署脚本和 CI/CD 集成方案。确保运维人员能够高效地部署、监控和维护系统。","order":7,"progress_status":"completed","dependent_files":"Makefile,internal/config/config.go,.gitignore","gmt_create":"2026-05-27T15:42:25.0321059+08:00","gmt_modified":"2026-05-27T15:49:39.6683467+08:00","raw_data":"WikiEncrypted:0IKfLNOWe9mZfG1jVts3w2XbjO+yyEmY3ONOjrL5GjA3YcCk7HFAQ1etKc5i1P7UH3oVY8Um0qaAPkZpvBj4kR5+MfLB2lNNE8Rq4eigRbWcSc/FwkPYo+Lgq1jG1nwAdVBamYbeC5rJp9miML32uAYGdDFNBUjcZautOKk/RnMVJbDBhxk06H3YR9uha+agF827jtBxrCN+YUD41ewpmu39XkuD0mIkISY0mw2kTQ3+d3o8egfEhqEtpYEFWDr4W3bjpZzdlqibicqkrLymwjSHLQ25Yk3RDRLQh41MEe9NzR7Dq9pho9nnzV6lVFI/+D3aLuQmEW30BSE9ANU6hjMLS2wzjZI20qiE3EYf9+/cetjKX3PuzziuE6FOa9zkRQET5Avno4lvS+dZE+/NCsoLeLBSpEpHChwy1FLMangpeABL3DMfOcjKBI10Zckgxc6knhlzmH7BYem/MGjE3gGbpXcSOYO91tlzjpTzkA6o8IN0BBKnVEm5ZsnA1/bpvtl8iPNcBLSvEh8r9nsvT61wFloxMMEwoqk4pfGxfYLYpLzHK4/B7kcP2F2ZxPsLNKguH2P+W5Onf/VEoeoeUie2shjfuxNczO0o+tk08s7YDF0suC+hauvXM8A5MtTJFjGAcXk0PepsGbBA15NaUxXQL+T9g4ZmHiM+HpXAVuFUtKMwAoMX7ejSmhK0Uu3abxpuatBFVQMyMn2CtFqbZ7qowCiFy8R+N8iJK+CNvcQX2UDetV403Hy9t8wz9Mb7zjigKo8EExeqBR+6tdzkd2jCxuo8oGTUNED9jyF3yEdLlhvryX6R8fmWeX6XaIUdEfwqd3lefqvppQLJ082CWs43k5Sa3wBYSrhvhINvH+qH2TvKZHwT6jdxjjHkPO23f0RWwLtVr0KwjqIYa2C5ujlLLUzPccXXZozTajzaXs4y1GIXIkjQyN9gkvew0CQdmqcwIakk6B1cd6GSvR2R7jI9aORlvoBPkZZZZaWccD23SJpY8S49pk6J1f4pp8SY58Cs5Tyhzyr9Jx/g0sdQhX5jT4NOD4vFTMDi/QwlxJVK5aAMEoni1Xixkn86Mvy6YO+C0syQmDIeaWwTw3oaJtKkp0rbEph8ikP8GV+vYas27rEHT5ikXy+qKaSpRTrS6pIvqMDTr46wYVA48CocbQCKuCxz+8aN1rxEOyVvF4BZIOGK94UT/86do17dVZDlKWyrMHyapzdcsG77AQVqx3wFdVBRhW+LLPtZ7DjrJ9MbZlWCzqTN+MPtV2pqJpf2QM5tK7xYlv8Yb6jOUmKXAJ+GSoB6Lnv55zJALFR7zYrYJqdnAOfLrd0Tx7cB5v+9"},{"id":"29142a7a-fa93-4a61-8ad8-c35c1b047599","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"开发指南","description":"development-guide","prompt":"为 Luxsin 应用 API 项目创建开发指南文档。详细说明代码规范、测试策略和调试技巧。包含添加新接口的标准流程、代码审查要求和最佳实践。提供单元测试、集成测试和性能测试的编写指南。说明调试工具的使用方法和常见问题的排查步骤。包含扩展开发的指导原则、插件机制和自定义中间件的开发。涉及代码重构、性能优化和安全加固的建议。提供开发环境的配置和团队协作的工作流程。确保新加入的开发者能够快速上手并遵循项目的开发标准。","order":8,"progress_status":"completed","dependent_files":"internal/response/response.go,pkg/encode/base64.go,internal/middleware,Makefile","gmt_create":"2026-05-27T15:42:25.0321059+08:00","gmt_modified":"2026-05-27T15:50:56.1828091+08:00","raw_data":"WikiEncrypted:F3QgleoEfoy16cQggYe9C/ucQxiwh0okVA48AmODs5RKNS8ZgNngqmnHSFcG/1UaJxx+3dUn+EkMTpYUsOg40sht54cXVXsXhnq+u5RoF+QCaIHA1bGkkQVYVJAIxj7oosqEK59VnFAy3/dJV3KPSb/Ak2NMFBLBF1vGpBDxfvX3bT23bfnsRo4s15uorwKaV7X3HasHsjQoW0eNqTYHiGBulek8S0+90Xknrv9THoJiqpJqkBeofpQiXqX5V618tXTFFsKRJ6phlpbQWf2cbMabajttNJ3B44KtoJSJow48koViUqq1GW3BavJLaIXKMSMHmg9oSjXlTiTYcEEZKa/kYEu4HzH+CTxYhmAZitafJJSGarLyIbemD6c9dKLK9Frtj68/dJRxA2JDgVe81LYeb/3xRsBom0r4YzT8A6hHZcszh4H3wvsJMywPaPsmmBX1tXvgqCTmKeNH7dyLyLi3kWUTw9ok4pV8mMbQVe+tyq+dAjkFZ19Gg1pa48jOuq3XNtyOUDkFwzf8ENVW6mMjhd6eh1Wngr55aY62gP2kA69TRUUa7xCg4pPwMd7kukU9I+311WRjxwqdx+K9z918Nh+Ehzce//3AN16rOPpfJiqCBsWoIGofgkkvOrhJXb7ZBSV8svzmyNFJAEwluR6iW6JSQF8aYcFWeQvuFotN33nkyOjukcXDEGZsNzH5UtAJyLrlT7/Or9ByIMARY/bLEe2ttw4LkzwPX0zVri6275Z+Tr+vS1tQvbizhQX+2d6jRwB57dWTT5wiNTTauC0iaRxAQAQpIiilb6edtE9uJDim04tl8b0GkMJvSCCVUwIKIl495jl1QK4bnCVwbXf+Nm9M8b2DoPU91RhXbRUH0oa9hiK/MMmM1pNPt8sIQPodxmby96ls9G7B9FZz54hyvdDRZXOoxueOW+qswnlAT8Pjzr7WYDEFWLqhVHl3YjAnYEyvqPyjLV10UlsnTu74OIH6TGCiFnRNdEUNrebnly9HRW/qPROmHDa6/S39zhxd/Wve8OTESmdoItuQITLhTn+hUnhZoQBVVqWJwAYFrayIms6xJZY8R31ZKxaxYGd9xNCp3P+7To8IS9yboFTqky2xkebLSLfn+HS7xe0MqZXcpzdCKfivdIbm1ebxh/61TCdDH2Wx1T0uqMlwy70jnT6dzzS860fOuXLUw+3uEIg/ohj+iqYOEEPHAIG/ADJxSwbTR4/RjVzy+yaWUiKWxLukEG89+389O2WLfiqMNBTDEZ4+iXaBOjZ2i8yTTW0xGChxJcCUGPmug6KyNPvoEDLiPot5cTWScQG04DSfIGUnVEqHKDxX3mS/pZDnfV2OkxwUfNtqXdYzFlWBWnI9TxnL3wxXTu3eI8SYHxflga+4BF6OXBwi8eu8DXYDarKNvnEn0JHi0Fh8VVcAoZmJeQkJUhcvnhyAKmJ0tD21XmK4/7ZcFZ8RuBkIEpDy"},{"id":"4d1d9a48-feab-42a0-815a-edf76dcaaf69","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"故障排除","description":"troubleshooting","prompt":"为 Luxsin 应用 API 项目创建故障排除文档。详细说明常见问题的诊断方法和解决方案。包含数据库连接问题、缓存失效、搜索异常和日志分析的排查步骤。提供错误代码对照表、日志分析技巧和性能诊断工具的使用方法。说明网络连接问题、配置错误和权限问题的解决策略。包含系统监控指标的解读和告警处理流程。提供生产环境问题的应急响应方案和回滚策略。涉及安全事件的处理和数据恢复的操作指南。确保运维和开发人员能够快速定位和解决系统问题。","order":9,"progress_status":"completed","dependent_files":"pkg/logger/logger.go,internal/response/response.go,internal/config/config.go","gmt_create":"2026-05-27T15:42:25.0326686+08:00","gmt_modified":"2026-05-27T15:51:51.4638338+08:00","raw_data":"WikiEncrypted:CaKOW8OSSWs4aEYk06Hu0hGGy7zXJE5t3XZJK+9x87Wqy/1Xzi+22LbOfczFZkieMj5WEpLZAHMOxW2WrQJBBBBLWDFSQSfMzyLUONYz2Nl7KEGwStUbBydq7XRqsFITwnt/V34PJe33lfOUHLZdte9ZHqIcBUofSz417l0pyB/LxfxiLi3iV7uxs4nc6n2EFO0hgr4tRmmgaEM1CEq4EgiztB5945G3QMRbLtVRjxhkZe9eWYo9vc2zRYWsyCp6nsjGToiqmfJff57lDOhyn0MhEnJamhFrscVK3DVyGf1SpxoYkDkFQ8OxuxWIHhAN31k2cpGQv9LmsRHcL8ratSFNuE0JPDtSTdY/ZWlXZReIKt/Phb2FMvUA2BI6cCF2Evsk8rpZnwjGsdOlJ+sGevLXEX+KO/9vz0AE6s+rE5u71DR5usC6vuuFgFV4FP7o+3Lcj81SBIu9V+wYU4GkJfPm9eZdFSFgsvHSuqFzrpdlcAeV0XMnU6wZcRaZy/8ZdaUJaIWp/K5jIqfGuxtPSOD1zDJ9Vw0jCLMjDlUTY0Wkzwykxog7i2SnG61vtu/eLORV6aTh8tjNhzdBwbROp3XlsxD0Jxg41JcDSyt4dpyQ35FAPBMPr7Mb3YeD4W1JWqrn8tR5Q1goBmPFlekKRd1XmyYQSZsK4FvBVOUBeCzX1UO7I505eXz/lN/ZG62xC3zhdCt+qCOxJogd4T1f1Nux404SmdsvewY4mg5PnyoinMtMIMX67YY+iFfZEedlNURipIOxssz0zcp+qeJXI9lwR58sgAvpu9JbTbVQJv4I7n1XM9CayA7Nhd0WXIh+yChGMyFdfq6BDje0NtSgi44k/h+mFUk3BqzfQWasqg7rPzAKjx23DY3Wf/8AvNN7IpP2CH4yRynuCGZim6B1AEqKfL6RCsXi3dpi6y6HmEO4DRk7XL8l9c+vWr+u/yI6A9OGZtzl8B7MoVhhEuuTvPbLCrwnHsU3VReA05fImoZPThjC0vYsQuP5jijDtjnjnShV/o1rLBat0xPAhTT0+Ba23IeZGODiU8yg7NtgprzmcJSS/wFzeapmPZYCB70qjxvW/HgkOhwl1TsfHNP/T6k6i1j6gSPIxgCbZzvcJrH9sumu84lcS6Yfg9Qvr7PpOAuDKDj7riCajk2RbdUVxrptqpZkD0kYIKictTHLnL48Uvp97xnspGQYkJA4BAv0grWVZFzqj7o0BlwD7oL/FLdBMSbXkNRCvjQjGnIZ2nq8MEZP3aofJTmW7e63/JTbcplJzE6wdft6ZBF4hroZE8TbT/pMlEMDkQDxYbgPETx9z/quiPJ+0p6dAD2TjJdiV2GfAFz6WEnJ3NljmFPBV2/5DJ4ugFlz6oBXJZArZyUzJlbmfIXasvwycIUFMx470AIl4o7bGCbGGL+tWgljzbkg7dly6G5lMTM+gWVGvWdUtXCOvYLq+oqCr5Uddgt0"}],"wiki_items":[{"catalog_id":"78b906f9-f81c-4bb2-b076-5c5609c7eb41","title":"项目概述","description":"project-overview","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"f30115a0-52c0-4f22-8486-ec2e6c334e6d","gmt_create":"2026-05-27T15:44:16.3635684+08:00","gmt_modified":"2026-05-27T15:44:16.367324+08:00"},{"catalog_id":"6de9a03e-f360-4daa-97ac-dc1cd1937916","title":"快速开始","description":"getting-started","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"61e1b102-9ad1-44f6-accb-0e27be48ceb7","gmt_create":"2026-05-27T15:45:02.5387528+08:00","gmt_modified":"2026-05-27T15:45:02.550849+08:00"},{"catalog_id":"0506348d-993b-48f2-936c-908972f149bc","title":"系统架构","description":"architecture-design","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"ab98c251-c5f7-40df-bba1-21b2edf5d220","gmt_create":"2026-05-27T15:45:15.0879497+08:00","gmt_modified":"2026-05-27T15:45:15.0922502+08:00"},{"catalog_id":"cc6acec0-b687-417f-9c93-00f59162cfed","title":"数据库设计","description":"database-design","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"120f3824-43f7-4a38-9680-43b5b2f59e05","gmt_create":"2026-05-27T15:47:52.3181698+08:00","gmt_modified":"2026-05-27T15:47:52.3231001+08:00"},{"catalog_id":"8d7c257e-b299-4adb-adfe-bc0ddbf112b7","title":"核心模块","description":"core-modules","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"7563e383-3ea0-4630-baeb-e86efcaeefb8","gmt_create":"2026-05-27T15:48:30.8129369+08:00","gmt_modified":"2026-05-27T15:48:30.8195851+08:00"},{"catalog_id":"8085e1b7-3658-4490-8b52-9a61f3e79976","title":"API 接口文档","description":"api-documentation","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"6159e8a9-0f6e-43af-b097-bfcd16c8b223","gmt_create":"2026-05-27T15:49:27.8849802+08:00","gmt_modified":"2026-05-27T15:49:27.8891715+08:00"},{"catalog_id":"f4f8585d-1446-4f49-85b2-efc715bda6cf","title":"部署运维","description":"deployment-operations","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"1da760f2-e12f-4b50-bd2e-539ff08c2047","gmt_create":"2026-05-27T15:49:39.6657096+08:00","gmt_modified":"2026-05-27T15:49:39.6688705+08:00"},{"catalog_id":"0ba3accc-326a-4433-930c-5b951d4e5dcf","title":"基础设施","description":"infrastructure","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"cfbcaa79-26f5-402f-8746-9fe524993684","gmt_create":"2026-05-27T15:49:51.0000417+08:00","gmt_modified":"2026-05-27T15:49:51.0048099+08:00"},{"catalog_id":"29142a7a-fa93-4a61-8ad8-c35c1b047599","title":"开发指南","description":"development-guide","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"081f97c7-d774-43b7-aff8-4973d577a059","gmt_create":"2026-05-27T15:50:56.179658+08:00","gmt_modified":"2026-05-27T15:50:56.1833555+08:00"},{"catalog_id":"67d62b58-6970-45ca-a17f-f48cb2ea679a","title":"业务处理器","description":"business-handlers","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"d1a696b8-5a9e-4ad2-8777-04eecc0bb424","gmt_create":"2026-05-27T15:51:42.2402901+08:00","gmt_modified":"2026-05-27T18:35:49.827349+08:00"},{"catalog_id":"4d1d9a48-feab-42a0-815a-edf76dcaaf69","title":"故障排除","description":"troubleshooting","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"3ce5cfd0-f4f6-439a-b60d-6fb4c36a26bd","gmt_create":"2026-05-27T15:51:51.4591126+08:00","gmt_modified":"2026-05-27T15:51:51.4638338+08:00"},{"catalog_id":"591ea147-ba05-4d86-a671-941af668ca2f","title":"品牌管理接口","description":"brand-management-api","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"6f1fe170-ae35-4660-91dc-ab89735274b7","gmt_create":"2026-05-27T15:52:20.2715607+08:00","gmt_modified":"2026-05-27T15:52:20.2747568+08:00"},{"catalog_id":"6e42204e-3d78-4997-a95a-3311c8fcaa43","title":"缓存系统","description":"cache-system","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"795a5202-49be-4c11-a2b4-44312eca8ae7","gmt_create":"2026-05-27T15:53:16.9891352+08:00","gmt_modified":"2026-05-27T18:36:40.5405367+08:00"},{"catalog_id":"fb8ae541-8bbc-4544-9133-e797be1433e0","title":"分层架构设计","description":"layered-architecture","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"523107ca-244f-43c5-a4fe-4649e36a88ad","gmt_create":"2026-05-27T15:53:50.4703345+08:00","gmt_modified":"2026-05-27T15:53:50.4735252+08:00"},{"catalog_id":"948e0792-2de7-47b1-b73b-e7b246e749ff","title":"数据访问层","description":"data-access-layer","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"599c0bda-3332-415c-a535-362503079473","gmt_create":"2026-05-27T15:54:10.7247654+08:00","gmt_modified":"2026-05-27T18:35:41.8040874+08:00"},{"catalog_id":"8b3ba473-1cf0-4471-a203-9a87732dc227","title":"型号管理接口","description":"model-management-api","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"6af33e3a-220d-4e68-87ed-bfb96bda4c3a","gmt_create":"2026-05-27T15:54:37.220316+08:00","gmt_modified":"2026-05-27T15:54:37.2236089+08:00"},{"catalog_id":"5b9847ff-f7b8-488b-821b-6fdfe2dbde40","title":"搜索引擎","description":"search-system","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"d0c2dea0-a71a-4f16-9889-b37e1e7996e3","gmt_create":"2026-05-27T15:55:50.6464041+08:00","gmt_modified":"2026-05-27T15:55:50.6500526+08:00"},{"catalog_id":"ccdbaf47-6cde-4ad7-95f8-5b92d33e2440","title":"路由系统","description":"routing-system","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"f4014d47-467e-4cfe-8549-1dfb69cbc325","gmt_create":"2026-05-27T15:56:02.5802842+08:00","gmt_modified":"2026-05-27T18:35:29.939743+08:00"},{"catalog_id":"e81027fa-c24e-4492-8100-f051facb89c9","title":"数据模型","description":"data-models","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"97c42095-5b4f-4cec-bbbb-1ba8bb9981d4","gmt_create":"2026-05-27T15:56:31.7739386+08:00","gmt_modified":"2026-05-27T15:56:31.7808704+08:00"},{"catalog_id":"8b7558c2-be32-47b8-99e2-1964009b4337","title":"设备管理接口","description":"device-management-api","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"e1ed4fc8-f1d6-4e8a-907b-9c39bbe13b92","gmt_create":"2026-05-27T15:57:09.1993166+08:00","gmt_modified":"2026-05-27T15:57:09.2037555+08:00"},{"catalog_id":"bc6825c8-9aa3-4f0e-96ca-ef4925af0570","title":"依赖注入模式","description":"dependency-injection","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"5910d326-0408-450d-b403-06a19f3da81b","gmt_create":"2026-05-27T15:57:20.0015238+08:00","gmt_modified":"2026-05-27T15:57:20.0074643+08:00"},{"catalog_id":"4b0e33d8-28d6-44dd-b90a-57af5c6cfaa9","title":"系统监控接口","description":"system-monitoring-api","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"0fc3d59c-d219-4f97-af10-473ee62f4de5","gmt_create":"2026-05-27T15:58:27.2590583+08:00","gmt_modified":"2026-05-27T15:58:27.261717+08:00"},{"catalog_id":"f5a7db4b-765d-46e4-9395-af7bbe8d8fd3","title":"日志系统","description":"logging-system","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"23a2ffc3-fa50-41ba-b7a6-55354d68a95a","gmt_create":"2026-05-27T15:58:35.6388373+08:00","gmt_modified":"2026-05-27T15:58:35.6424946+08:00"},{"catalog_id":"e2d8da89-04c9-4fee-8dfe-adfaff79c9c1","title":"统一响应","description":"unified-response","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"699a84c5-5140-4267-861e-62bffbffccb4","gmt_create":"2026-05-27T15:58:41.4359+08:00","gmt_modified":"2026-05-27T15:58:41.4408299+08:00"},{"catalog_id":"f351f338-eeb0-4243-921a-eed11d063072","title":"中间件模式","description":"middleware-pattern","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"e8e5fe7e-cc7c-4259-95d0-f6b46d888ed8","gmt_create":"2026-05-27T16:00:02.1459491+08:00","gmt_modified":"2026-05-27T16:00:02.1508768+08:00"},{"catalog_id":"c79882f1-420e-4d6c-a40c-dff8c7e8988f","title":"组件交互机制","description":"component-interaction","extend":"{}","progress_status":"completed","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","reference_count":0,"id":"5a04f737-b877-4908-a4fc-67a88614aafc","gmt_create":"2026-05-27T16:00:37.8802374+08:00","gmt_modified":"2026-05-27T16:00:37.8856299+08:00"}],"wiki_overview":{"content":"基于我对项目的深入分析,现在我可以生成一个全面的项目概述:\n\n\u003cblog\u003e\n\n# Luxsin 应用 API 项目架构分析\n\n## 1. 项目介绍\n\n### 目标与定位\nLuxsin 应用 API 是一个基于 Go 语言构建的音频设备(耳机)数据管理服务,主要为移动应用提供品牌、型号、设备信息等数据查询接口。该项目采用现代化的微服务架构设计,专注于音频设备数据的高效检索和管理。\n\n### 核心目标\n- 提供 RESTful API 接口,支持音频设备数据的查询和管理\n- 实现高性能的数据检索,结合 MySQL 和 Meilisearch 搜索引擎\n- 构建可扩展的缓存层,使用 Redis 提升系统性能\n- 确保生产环境的稳定性和可靠性\n\n### 目标用户\n- 移动应用开发者\n- 音频设备数据管理系统\n- 第三方集成商\n\n## 2. 技术架构\n\n### 整体架构设计\n\n```mermaid\ngraph TD\n A[客户端应用] --\u003e B[Gin Web框架]\n B --\u003e C[中间件层]\n C --\u003e D[路由层]\n D --\u003e E[处理器层]\n E --\u003e F[仓库层]\n F --\u003e G[数据库层]\n \n H[Meilisearch搜索] --\u003e E\n I[Redis缓存] --\u003e E\n \n C --\u003e J[CORS中间件]\n C --\u003e K[日志中间件]\n C --\u003e L[请求ID中间件]\n \n M[配置管理] --\u003e N[数据库连接]\n M --\u003e O[Redis连接]\n M --\u003e P[搜索客户端]\n```\n\n### 设计模式\n- **分层架构模式**:清晰的业务逻辑分层,便于维护和测试\n- **依赖注入模式**:通过构造函数注入依赖,提升代码可测试性\n- **工厂模式**:用于创建各种客户端和服务实例\n- **中间件模式**:统一处理跨域、日志、请求ID等功能\n\n### 系统关系图\n\n```mermaid\nflowchart TD\n Client[客户端请求] --\u003e Gin[Gin Engine]\n Gin --\u003e Middleware[中间件链]\n Middleware --\u003e Handler[业务处理器]\n Handler --\u003e Repository[数据仓库]\n Repository --\u003e DB[(MySQL数据库)]\n Handler --\u003e Search[Meilisearch]\n Handler --\u003e Cache[Redis缓存]\n \n subgraph \"核心组件\"\n Gin\n Middleware\n Handler\n Repository\n end\n \n subgraph \"外部服务\"\n DB\n Search\n Cache\n end\n```\n\n## 3. 关键实现\n\n### 主要入口点\n- **服务器启动**:`cmd/server/main.go` - 应用程序的主入口,负责初始化所有服务组件\n- **路由配置**:`internal/router/router.go` - 定义 API 路由和中间件配置\n- **配置管理**:`internal/config/config.go` - 统一的配置加载和验证机制\n\n### 核心模块\n\n#### 数据访问层\n- **数据库连接**:`internal/database/mysql.go` - MySQL 数据库连接管理\n- **品牌仓库**:`internal/repository/brand.go` - 品牌数据的 CRUD 操作\n- **型号仓库**:`internal/repository/model.go` - 型号数据的查询和管理\n\n#### 业务处理层\n- **品牌处理器**:`internal/handler/brand.go` - 品牌数据的业务逻辑处理\n- **型号处理器**:`internal/handler/model.go` - 型号数据的业务逻辑处理\n- **模型列表处理器**:`internal/handler/model_list.go` - 结合搜索功能的型号查询\n- **设备信息处理器**:`internal/handler/device.go` - 设备上报信息处理\n\n#### 缓存和搜索\n- **Redis客户端**:`internal/cache/redis.go` - Redis 连接和操作封装\n- **Meilisearch客户端**:`internal/search/meilisearch.go` - 搜索功能实现\n\n### 配置管理\n- **环境配置**:`internal/config/config.go` - 支持开发和生产环境的配置切换\n- **数据库配置**:`internal/config/database.go` - MySQL 连接参数配置\n- **Redis配置**:`internal/config/redis.go` - Redis 连接配置\n- **搜索配置**:`internal/config/meilisearch.go` - Meilisearch 搜索配置\n\n### 中间件系统\n- **CORS中间件**:`internal/middleware/cors.go` - 跨域资源共享处理\n- **日志中间件**:`internal/middleware/logger.go` - 请求日志记录\n- **请求ID中间件**:`internal/middleware/request_id.go` - 请求追踪标识\n\n### 日志系统\n- **日志配置**:`pkg/logger/logger.go` - 基于 Zap 的日志系统,支持开发和生产环境不同配置\n\n### 数据模型\n- **品牌模型**:`internal/model/brand.go` - 品牌数据结构定义\n- **型号模型**:`internal/model/model.go` - 型号数据结构定义\n\n### 响应处理\n- **统一响应格式**:`internal/response/response.go` - API 响应的标准格式化\n\n## 4. 核心特性\n\n### 功能架构图\n\n```mermaid\nstateDiagram-v2\n [*] --\u003e 接收请求\n 接收请求 --\u003e 验证参数\n 验证参数 --\u003e 处理业务逻辑\n 处理业务逻辑 --\u003e 查询数据库\n 查询数据库 --\u003e 返回结果\n 处理业务逻辑 --\u003e 使用缓存\n 使用缓存 --\u003e 返回结果\n 处理业务逻辑 --\u003e 执行搜索\n 执行搜索 --\u003e 返回结果\n \n 返回结果 --\u003e 记录日志\n 记录日志 --\u003e [*]\n \n 验证参数 --\u003e 错误处理\n 错误处理 --\u003e 返回错误\n 返回错误 --\u003e 记录日志\n```\n\n### 实现亮点\n\n#### 多数据源架构\n- **混合存储策略**:结合传统关系型数据库和现代搜索引擎\n- **缓存优化**:使用 Redis 缓存热点数据,提升响应速度\n- **异步处理**:支持设备信息上报的异步处理机制\n\n#### 高可用设计\n- **优雅关闭**:支持服务器优雅启动和关闭\n- **信号处理**:正确处理系统信号,确保资源正确释放\n- **连接池管理**:数据库和缓存连接的生命周期管理\n\n#### 开发体验优化\n- **环境隔离**:开发和生产环境的配置分离\n- **统一日志**:结构化的日志输出,便于问题排查\n- **错误处理**:完善的错误处理和返回机制\n\n### 性能考虑\n\n```mermaid\ngraph LR\n A[请求到达] --\u003e B[中间件处理]\n B --\u003e C[缓存检查]\n C --\u003e D{缓存命中?}\n D --\u003e|是| E[直接返回缓存]\n D --\u003e|否| F[查询数据库]\n F --\u003e G[更新缓存]\n G --\u003e H[返回响应]\n E --\u003e H\n H --\u003e I[记录日志]\n```\n\n## 5. 项目特色\n\n### 架构优势\n- **模块化设计**:清晰的职责分离,便于团队协作和维护\n- **可扩展性**:支持添加新的数据源和业务功能\n- **可观测性**:完整的日志记录和监控支持\n- **安全性**:中间件层提供统一的安全控制\n\n### 技术选型\n- **Go 1.24**:现代化的编程语言,提供优秀的性能和并发能力\n- **Gin 框架**:高性能 HTTP Web 框架,适合构建 RESTful API\n- **MySQL**:成熟的关系型数据库,适合结构化数据存储\n- **Meilisearch**:快速的全文搜索引擎,提供优秀的搜索体验\n- **Redis**:高性能的内存数据结构存储,用于缓存和会话管理\n\n### 开发最佳实践\n- **依赖注入**:通过构造函数注入依赖,提升代码可测试性\n- **错误处理**:统一的错误处理机制,避免错误传播\n- **配置管理**:环境变量驱动的配置管理,支持容器化部署\n- **日志标准化**:结构化日志输出,便于日志分析和监控\n\n## 6. 总结与建议\n\n### 项目特点总结\nLuxsin 应用 API 项目展现了现代 Go 语言 Web 服务的最佳实践,采用了清晰的分层架构、依赖注入和中间件模式。项目在性能、可维护性和可扩展性方面都表现出色,为音频设备数据管理提供了可靠的基础设施。\n\n### 架构优势\n- **清晰的层次结构**:从路由到数据访问的完整分层设计\n- **现代化技术栈**:选择合适的技术解决特定问题\n- **完善的基础设施**:包含缓存、搜索、日志等完整的系统组件\n- **良好的工程实践**:遵循 Go 语言的最佳实践和编码规范\n\n### 改进建议\n1. **增加单元测试**:为关键业务逻辑添加更多的单元测试覆盖\n2. **API 文档**:集成 Swagger 或类似工具生成 API 文档\n3. **监控指标**:添加 Prometheus 指标收集,完善运维监控\n4. **健康检查**:扩展健康检查端点,提供更详细的系统状态信息\n5. **配置热更新**:支持部分配置的动态更新,减少重启需求\n\n### 下一步发展方向\n- **微服务拆分**:根据业务领域进一步拆分服务\n- **消息队列**:引入消息队列处理异步任务\n- **容器化部署**:完善 Docker 和 Kubernetes 部署配置\n- **性能优化**:持续优化查询性能和缓存策略\n\n---\n\n**Sources:**\n- [main.go](cmd/server/main.go)\n- [go.mod](go.mod)\n- [config.go](internal/config/config.go)\n- [router.go](internal/router/router.go)\n- [brand.go](internal/handler/brand.go)\n- [brand_repository.go](internal/repository/brand.go)\n- [brand_model.go](internal/model/brand.go)\n- [meilisearch.go](internal/search/meilisearch.go)\n- [redis.go](internal/cache/redis.go)\n- [cors.go](internal/middleware/cors.go)\n- [logger.go](pkg/logger/logger.go)\n- [database_config.go](internal/config/database.go)\n- [model.sql](sql/model.sql)\n\n\u003c/blog\u003e","gmt_create":"2026-05-27T15:40:06.9577463+08:00","gmt_modified":"2026-05-27T15:40:06.9577463+08:00","id":"5a60eb9b-0b2d-4d2f-99c6-dd1e4cd34dd3","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc"},"wiki_readme":{"content":"No readme file","gmt_create":"2026-05-27T15:38:58.8115445+08:00","gmt_modified":"2026-05-27T15:38:58.8115445+08:00","id":"cf8cd5f4-1600-41c4-9afb-1db3a1464c48","repo_id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc"},"wiki_repo":{"id":"a6c92e0a-0eb8-4b81-8beb-0169c32d76bc","name":"app-api","progress_status":"completed","wiki_present_status":"COMPLETED","optimized_catalog":"\".\\n├── _tmp_desc\\\\\\n├── cmd\\\\server\\\\\\n│ └── main.go\\n├── internal\\\\\\n│ ├── cache\\\\\\n│ │ └── redis.go\\n│ ├── config\\\\\\n│ │ ├── config.go\\n│ │ ├── database.go\\n│ │ ├── meilisearch.go\\n│ │ └── redis.go\\n│ ├── database\\\\\\n│ │ └── mysql.go\\n│ ├── handler\\\\\\n│ │ ├── brand.go\\n│ │ ├── device.go\\n│ │ ├── health.go\\n│ │ ├── model.go\\n│ │ └── model_list.go\\n│ ├── middleware\\\\\\n│ │ ├── cors.go\\n│ │ ├── logger.go\\n│ │ └── request_id.go\\n│ ├── model\\\\\\n│ │ ├── brand.go\\n│ │ └── model.go\\n│ ├── repository\\\\\\n│ │ ├── brand.go\\n│ │ └── model.go\\n│ ├── response\\\\\\n│ │ └── response.go\\n│ ├── router\\\\\\n│ │ └── router.go\\n│ └── search\\\\\\n│ └── meilisearch.go\\n├── pkg\\\\\\n│ ├── encode\\\\\\n│ │ └── base64.go\\n│ └── logger\\\\\\n│ └── logger.go\\n├── sql\\\\\\n│ └── model.sql\\n├── .gitignore\\n├── Makefile\\n├── README.md\\n├── go.mod\\n└── go.sum\\n\"","current_document_structure":"WikiEncrypted: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","catalogue_think_content":"WikiEncrypted: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","recovery_checkpoint":"wiki_generation_completed","last_commit_id":"36c6ca276628c62822c5b35e3772f1e2f1340f71","last_commit_update":"2026-05-27T18:36:41.119769+08:00","gmt_create":"2026-05-27T15:32:45.7755498+08:00","gmt_modified":"2026-05-27T18:36:41.119769+08:00","extend_info":"{\"language\":\"zh\",\"active\":true,\"branch\":\"main\",\"shareStatus\":\"\",\"server_error_code\":\"\",\"cosy_version\":\"1.2.3\"}"}}