From a3f67c4049e9453b1e036bfd36b0ef1d4bb76868 Mon Sep 17 00:00:00 2001 From: Dmitry Shurco Date: Wed, 29 Nov 2023 15:18:20 +0000 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20short=20product=20descripti?= =?UTF-8?q?on?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20230714135999_migration_name.sql | 18 ++++---- internal/models/products.go | 1 + internal/queries/products.go | 11 +++-- migrations/20230714135923_init_db.sql | 2 +- migrations/20231129131044_brief.sql | 9 ++++ web/admin/src/components/Editor.vue | 5 +- web/admin/src/components/product/Add.vue | 6 ++- web/admin/src/components/product/Update.vue | 46 +++++++++++-------- web/admin/src/components/product/View.vue | 4 +- web/site/layouts/main.html | 2 +- web/site/product.html | 22 +++++---- web/site/public/assets/css/main.css | 24 ++++------ web/site/public/assets/css/style.css | 2 +- 13 files changed, 90 insertions(+), 62 deletions(-) create mode 100644 migrations/20231129131044_brief.sql diff --git a/fixtures/migration/20230714135999_migration_name.sql b/fixtures/migration/20230714135999_migration_name.sql index be1d889..da41852 100644 --- a/fixtures/migration/20230714135999_migration_name.sql +++ b/fixtures/migration/20230714135999_migration_name.sql @@ -22,15 +22,15 @@ UPDATE page SET content = '

Lorem Ipsum content

Lorem UPDATE page SET content = '

Lorem Ipsum content

Lorem ipsum dolor sit amet. Sit animi repellat aut quas fugitQui repudiandae. Non error officiis Ea tempora et dicta quos ut assumenda aliquam non distinctio quae! Rem nobis vero Aut quidem et quaerat adipisci sed voluptatem velit quo sunt placeat sed voluptatem alias sit voluptas sequi. Non aliquam perferendis et voluptatem minusEt rerum est voluptatum atque.

Et repudiandae galisum et assumenda excepturi aut eius aspernatur.

Qui quas accusamus et officia molestiaequi ipsum id laudantium itaque. Eum temporibus itaqueaut reprehenderit id numquam quisquam.

Et mollitia voluptatem ut fugiat odio et natus nulla ut exercitationem ipsum eum fuga distinctio.

Qui ullam libero sed nobis dolores.

Qui modi dignissimos sed eius nostrum Est harum et cumque iste et commodi illum qui dolorum maiores est harum assumenda. Id labore sint Aut quas aut repudiandae quasi aut cupiditate quia aut consectetur dolor qui ducimus distinctio sit aspernatur recusandae.

  1. Rem dignissimos rerum ut commodi iusto cum iste sequi sit consectetur autem.

  2. Aut saepe culpa aut deserunt libero ea vitae quisquam aut dolore voluptas.

  3. Sit quae pariatur vel explicabo omnis At sequi inventore.

  4. Cum magnam consequuntur qui veniam modi est reprehenderit enim.

  5. Sed voluptatem odit sit dolores minima.

' WHERE id = 'sdH0wGM54e3mZC2'; UPDATE page SET content = '

Lorem Ipsum content

Lorem ipsum dolor sit amet. Et delectus quis ut sequi sunt Ut vitae ab tempore voluptatem in quia nesciunt qui vero aperiam! Ut natus magnam et dolore quaeratnon ducimus. At nesciunt enim in omnis iste Et alias cum dolorem magnam aut dolorem voluptatem.

Est provident dolorem sit voluptas molestias et dolore tempora.

Et quia deserunt non esse aliquamhic incidunt. Eum dolore animi et nisi ipsam Hic eveniet et itaque natus ut aliquam soluta. Est optio tempora sed nihil quae A quia aut soluta explicabo et molestias dolores sed modi aliquid et dolores mollitia. Sit aspernatur adipisciQui iure eum amet sint?

Et rerum minima quo sapiente consequatur id doloribus facere vel aperiam mollitia et dolorem beatae et totam laboriosam.

Ex voluptates rerum est galisum accusantium.

Ut doloribus tempore aut quaerat corporisaut iusto? Et error modi Sit corporis aut facere itaque et voluptas aliquid et optio ullam eos molestiae eveniet! Et quisquam galisum eum quod nobis Est perspiciatis et architecto quia et harum dolore.

' WHERE id = 'kFCjBnL25hNTRHk'; -INSERT INTO product (id, name, desc, slug, metadata, attribute, amount, digital) VALUES -('fv6c9s9cqzf36sc', 'name1', 'description1', 'url1', '[{"key":"key1", "value":"value1"}, {"key":"key2", "value":"value2"}, {"key":"key3", "value":"value3"}, {"key":"key4", "value":"value4"}, {"key":"key5", "value":"value5"}, {"key":"key6", "value":"value6"}]', '["atribute1" ,"atribute2", "atribute3"]', 2000, 'file'), -('xrtb1b919t2nuj9', 'name2', 'description2', 'url2', '[{"key":"key1", "value":"value1"}, {"key":"key2", "value":"value2"}, {"key":"key3", "value":"value3"}, {"key":"key4", "value":"value4"}, {"key":"key5", "value":"value5"}, {"key":"key6", "value":"value6"}]', '["atribute1" ,"atribute2", "atribute3"]', 2100, 'data'), -('7mweb67t8xv9pzx', 'name3', 'description3', 'url3', '[{"key":"key1", "value":"value1"}, {"key":"key2", "value":"value2"}, {"key":"key3", "value":"value3"}, {"key":"key4", "value":"value4"}, {"key":"key5", "value":"value5"}, {"key":"key6", "value":"value6"}]', '["atribute1" ,"atribute2", "atribute3"]', 2200, 'file'), -('k4pkxqhn4p0xhoc', 'name4', 'description4', 'url4', '[{"key":"key1", "value":"value1"}, {"key":"key2", "value":"value2"}, {"key":"key3", "value":"value3"}, {"key":"key4", "value":"value4"}, {"key":"key5", "value":"value5"}, {"key":"key6", "value":"value6"}]', '["atribute1" ,"atribute2", "atribute3"]', 2300, 'data'), -('2wdx6k7b3lywc2o', 'name5', 'description5', 'url5', '[{"key":"key1", "value":"value1"}, {"key":"key2", "value":"value2"}, {"key":"key3", "value":"value3"}, {"key":"key4", "value":"value4"}, {"key":"key5", "value":"value5"}, {"key":"key6", "value":"value6"}]', '["atribute1" ,"atribute2", "atribute3"]', 2400, 'file'), -('zlfpc6b17gte0ot', 'name6', 'description6', 'url6', '[{"key":"key1", "value":"value1"}, {"key":"key2", "value":"value2"}, {"key":"key3", "value":"value3"}, {"key":"key4", "value":"value4"}, {"key":"key5", "value":"value5"}, {"key":"key6", "value":"value6"}]', '["atribute1" ,"atribute2", "atribute3"]', 2500, 'data'), -('ktorsk0xj8w5zab', 'name7', 'description7', 'url7', '[{"key":"key1", "value":"value1"}, {"key":"key2", "value":"value2"}, {"key":"key3", "value":"value3"}, {"key":"key4", "value":"value4"}, {"key":"key5", "value":"value5"}, {"key":"key6", "value":"value6"}]', '["atribute1" ,"atribute2", "atribute3"]', 2600, 'file'), -('6bn739vrvfp6zaw', 'name8', 'description8', 'url8', '[{"key":"key1", "value":"value1"}, {"key":"key2", "value":"value2"}, {"key":"key3", "value":"value3"}, {"key":"key4", "value":"value4"}, {"key":"key5", "value":"value5"}, {"key":"key6", "value":"value6"}]', '["atribute1" ,"atribute2", "atribute3"]', 2700, 'data'); +INSERT INTO product (id, name, brief, desc, slug, metadata, attribute, amount, digital) VALUES +('fv6c9s9cqzf36sc', 'name1', 'Aut soluta corrupti et. Quasi repellat iste vero itaque tenetur ullam nobis enim labore possimus. Voluptas neque soluta perferendis labore possimus recusandae est. Earum itaque repellendus soluta itaque reprehenderit autem autem.', '

Lorem ipsum dolor sit amet. Non culpa fugiat Aut distinctio nam placeat fuga ut eveniet natus et blanditiis ullam qui velit accusamus. Ex omnis quos Sed officia ut reprehenderit autem non optio recusandae ut omnis atque et totam quas cum illum laudantium. Ex doloribus ipsum qui ipsa autemNam sapiente aut dignissimos voluptas sed autem voluptatem aut quis asperiores.

33 quam voluptatum sed quia suscipit in modi quia.

Quo quos reiciendis Non laborum aut corrupti nobis qui delectus velit est vero numquam et neque aperiam. Aut quaerat autemNon deleniti et assumenda alias ut officiis laboriosam. Qui tenetur assumenda Cum molestiae quo nihil aliquam cum galisum minima.

  1. Est error saepe a placeat galisum et tempore deleniti.

  2. Et rerum obcaecati vel alias nobis ut illo incidunt.

  3. Non nisi itaque non atque minima.

  4. Eum dolor fuga eos magnam omnis.

  5. 33 iure enim aut commodi magni et quis sunt quo totam enim.

Sit culpa impedit aut commodi cupiditate vel alias voluptatem ad enim ipsa qui saepe odit aut vitae quas!

Et nihil repellat qui ratione doloremque aut neque tempore.

Ea molestias tenetur Ea nihil ea pariatur dolores qui odio nisi quo ipsum nisi! Aut quia consequatur et earum voluptassed beatae! Eum eligendi quosNon accusamus est voluptas incidunt.

', 'url1', '[{"key":"key1", "value":"value1"}, {"key":"key2", "value":"value2"}, {"key":"key3", "value":"value3"}, {"key":"key4", "value":"value4"}, {"key":"key5", "value":"value5"}, {"key":"key6", "value":"value6"}]', '["atribute1" ,"atribute2", "atribute3"]', 2000, 'file'), +('xrtb1b919t2nuj9', 'name2', 'Repellat perspiciatis porro omnis delectus pariatur totam at officia. A sed ipsum est nam distinctio fuga temporibus aut nulla harum necessitatibus. Repudiandae impedit alias dolor aut quia sit. Necessitatibus mollitia ut enim et debitis et dolores fugiat vel tenetur.', '

Lorem ipsum dolor sit amet. Sit animi repellat aut quas fugitQui repudiandae. Non error officiis Ea tempora et dicta quos ut assumenda aliquam non distinctio quae! Rem nobis vero Aut quidem et quaerat adipisci sed voluptatem velit quo sunt placeat sed voluptatem alias sit voluptas sequi. Non aliquam perferendis et voluptatem minusEt rerum est voluptatum atque.

Et repudiandae galisum et assumenda excepturi aut eius aspernatur.

Qui quas accusamus et officia molestiaequi ipsum id laudantium itaque. Eum temporibus itaqueaut reprehenderit id numquam quisquam.

Et mollitia voluptatem ut fugiat odio et natus nulla ut exercitationem ipsum eum fuga distinctio.

Qui ullam libero sed nobis dolores.

Qui modi dignissimos sed eius nostrum Est harum et cumque iste et commodi illum qui dolorum maiores est harum assumenda. Id labore sint Aut quas aut repudiandae quasi aut cupiditate quia aut consectetur dolor qui ducimus distinctio sit aspernatur recusandae.

  1. Rem dignissimos rerum ut commodi iusto cum iste sequi sit consectetur autem.

  2. Aut saepe culpa aut deserunt libero ea vitae quisquam aut dolore voluptas.

  3. Sit quae pariatur vel explicabo omnis At sequi inventore.

  4. Cum magnam consequuntur qui veniam modi est reprehenderit enim.

  5. Sed voluptatem odit sit dolores minima.

', 'url2', '[{"key":"key1", "value":"value1"}, {"key":"key2", "value":"value2"}, {"key":"key3", "value":"value3"}, {"key":"key4", "value":"value4"}, {"key":"key5", "value":"value5"}, {"key":"key6", "value":"value6"}]', '["atribute1" ,"atribute2", "atribute3"]', 2100, 'data'), +('7mweb67t8xv9pzx', 'name3', 'Nostrum sit alias odit est qui ab molestiae tempora. Nihil voluptatem reprehenderit eum animi laudantium. Enim labore voluptatem sed at non qui quia distinctio eligendi repellat tenetur.', '

Lorem ipsum dolor sit amet. Et delectus quis ut sequi sunt Ut vitae ab tempore voluptatem in quia nesciunt qui vero aperiam! Ut natus magnam et dolore quaeratnon ducimus. At nesciunt enim in omnis iste Et alias cum dolorem magnam aut dolorem voluptatem.

Est provident dolorem sit voluptas molestias et dolore tempora.

Et quia deserunt non esse aliquamhic incidunt. Eum dolore animi et nisi ipsam Hic eveniet et itaque natus ut aliquam soluta. Est optio tempora sed nihil quae A quia aut soluta explicabo et molestias dolores sed modi aliquid et dolores mollitia. Sit aspernatur adipisciQui iure eum amet sint?

Et rerum minima quo sapiente consequatur id doloribus facere vel aperiam mollitia et dolorem beatae et totam laboriosam.

Ex voluptates rerum est galisum accusantium.

Ut doloribus tempore aut quaerat corporisaut iusto? Et error modi Sit corporis aut facere itaque et voluptas aliquid et optio ullam eos molestiae eveniet! Et quisquam galisum eum quod nobis Est perspiciatis et architecto quia et harum dolore.

', 'url3', '[{"key":"key1", "value":"value1"}, {"key":"key2", "value":"value2"}, {"key":"key3", "value":"value3"}, {"key":"key4", "value":"value4"}, {"key":"key5", "value":"value5"}, {"key":"key6", "value":"value6"}]', '["atribute1" ,"atribute2", "atribute3"]', 2200, 'file'), +('k4pkxqhn4p0xhoc', 'name4', 'Ex autem et cumque quod nulla sed quisquam. Tempora voluptate aut dolorem magni omnis exercitationem sunt et atque fugit quod. Labore et vel enim non unde itaque quia fuga expedita consectetur. Et illo quia nam.', '

Lorem ipsum dolor sit amet. Non culpa fugiat Aut distinctio nam placeat fuga ut eveniet natus et blanditiis ullam qui velit accusamus. Ex omnis quos Sed officia ut reprehenderit autem non optio recusandae ut omnis atque et totam quas cum illum laudantium. Ex doloribus ipsum qui ipsa autemNam sapiente aut dignissimos voluptas sed autem voluptatem aut quis asperiores.

33 quam voluptatum sed quia suscipit in modi quia.

Quo quos reiciendis Non laborum aut corrupti nobis qui delectus velit est vero numquam et neque aperiam. Aut quaerat autemNon deleniti et assumenda alias ut officiis laboriosam. Qui tenetur assumenda Cum molestiae quo nihil aliquam cum galisum minima.

  1. Est error saepe a placeat galisum et tempore deleniti.

  2. Et rerum obcaecati vel alias nobis ut illo incidunt.

  3. Non nisi itaque non atque minima.

  4. Eum dolor fuga eos magnam omnis.

  5. 33 iure enim aut commodi magni et quis sunt quo totam enim.

Sit culpa impedit aut commodi cupiditate vel alias voluptatem ad enim ipsa qui saepe odit aut vitae quas!

Et nihil repellat qui ratione doloremque aut neque tempore.

Ea molestias tenetur Ea nihil ea pariatur dolores qui odio nisi quo ipsum nisi! Aut quia consequatur et earum voluptassed beatae! Eum eligendi quosNon accusamus est voluptas incidunt.

', 'url4', '[{"key":"key1", "value":"value1"}, {"key":"key2", "value":"value2"}, {"key":"key3", "value":"value3"}, {"key":"key4", "value":"value4"}, {"key":"key5", "value":"value5"}, {"key":"key6", "value":"value6"}]', '["atribute1" ,"atribute2", "atribute3"]', 2300, 'data'), +('2wdx6k7b3lywc2o', 'name5', 'Cumque id natus quibusdam temporibus sed est impedit nam rem et adipisci quam architecto odio. Laboriosam accusamus velit pariatur vel temporibus velit. Doloribus et enim sed.', '

Lorem ipsum dolor sit amet. Sit animi repellat aut quas fugitQui repudiandae. Non error officiis Ea tempora et dicta quos ut assumenda aliquam non distinctio quae! Rem nobis vero Aut quidem et quaerat adipisci sed voluptatem velit quo sunt placeat sed voluptatem alias sit voluptas sequi. Non aliquam perferendis et voluptatem minusEt rerum est voluptatum atque.

Et repudiandae galisum et assumenda excepturi aut eius aspernatur.

Qui quas accusamus et officia molestiaequi ipsum id laudantium itaque. Eum temporibus itaqueaut reprehenderit id numquam quisquam.

Et mollitia voluptatem ut fugiat odio et natus nulla ut exercitationem ipsum eum fuga distinctio.

Qui ullam libero sed nobis dolores.

Qui modi dignissimos sed eius nostrum Est harum et cumque iste et commodi illum qui dolorum maiores est harum assumenda. Id labore sint Aut quas aut repudiandae quasi aut cupiditate quia aut consectetur dolor qui ducimus distinctio sit aspernatur recusandae.

  1. Rem dignissimos rerum ut commodi iusto cum iste sequi sit consectetur autem.

  2. Aut saepe culpa aut deserunt libero ea vitae quisquam aut dolore voluptas.

  3. Sit quae pariatur vel explicabo omnis At sequi inventore.

  4. Cum magnam consequuntur qui veniam modi est reprehenderit enim.

  5. Sed voluptatem odit sit dolores minima.

', 'url5', '[{"key":"key1", "value":"value1"}, {"key":"key2", "value":"value2"}, {"key":"key3", "value":"value3"}, {"key":"key4", "value":"value4"}, {"key":"key5", "value":"value5"}, {"key":"key6", "value":"value6"}]', '["atribute1" ,"atribute2", "atribute3"]', 2400, 'file'), +('zlfpc6b17gte0ot', 'name6', 'Vero quidem at minima illum hic sed consequuntur nesciunt sequi. Sed consequatur voluptatem voluptatem quia odio voluptatum adipisci iusto accusamus odit non. Similique voluptatem at non. Et nemo neque in quae incidunt sunt accusamus accusamus asperiores architecto aut a.', '

Lorem ipsum dolor sit amet. Et delectus quis ut sequi sunt Ut vitae ab tempore voluptatem in quia nesciunt qui vero aperiam! Ut natus magnam et dolore quaeratnon ducimus. At nesciunt enim in omnis iste Et alias cum dolorem magnam aut dolorem voluptatem.

Est provident dolorem sit voluptas molestias et dolore tempora.

Et quia deserunt non esse aliquamhic incidunt. Eum dolore animi et nisi ipsam Hic eveniet et itaque natus ut aliquam soluta. Est optio tempora sed nihil quae A quia aut soluta explicabo et molestias dolores sed modi aliquid et dolores mollitia. Sit aspernatur adipisciQui iure eum amet sint?

Et rerum minima quo sapiente consequatur id doloribus facere vel aperiam mollitia et dolorem beatae et totam laboriosam.

Ex voluptates rerum est galisum accusantium.

Ut doloribus tempore aut quaerat corporisaut iusto? Et error modi Sit corporis aut facere itaque et voluptas aliquid et optio ullam eos molestiae eveniet! Et quisquam galisum eum quod nobis Est perspiciatis et architecto quia et harum dolore.

', 'url6', '[{"key":"key1", "value":"value1"}, {"key":"key2", "value":"value2"}, {"key":"key3", "value":"value3"}, {"key":"key4", "value":"value4"}, {"key":"key5", "value":"value5"}, {"key":"key6", "value":"value6"}]', '["atribute1" ,"atribute2", "atribute3"]', 2500, 'data'), +('ktorsk0xj8w5zab', 'name7', 'Nulla debitis voluptas commodi omnis provident beatae qui. Sit voluptatem qui aut non aliquam exercitationem neque voluptates. Dolor nostrum minus voluptate reiciendis minima magni quibusdam et perferendis. Quibusdam explicabo corporis accusamus quo quae.', '

Lorem ipsum dolor sit amet. Non culpa fugiat Aut distinctio nam placeat fuga ut eveniet natus et blanditiis ullam qui velit accusamus. Ex omnis quos Sed officia ut reprehenderit autem non optio recusandae ut omnis atque et totam quas cum illum laudantium. Ex doloribus ipsum qui ipsa autemNam sapiente aut dignissimos voluptas sed autem voluptatem aut quis asperiores.

33 quam voluptatum sed quia suscipit in modi quia.

Quo quos reiciendis Non laborum aut corrupti nobis qui delectus velit est vero numquam et neque aperiam. Aut quaerat autemNon deleniti et assumenda alias ut officiis laboriosam. Qui tenetur assumenda Cum molestiae quo nihil aliquam cum galisum minima.

  1. Est error saepe a placeat galisum et tempore deleniti.

  2. Et rerum obcaecati vel alias nobis ut illo incidunt.

  3. Non nisi itaque non atque minima.

  4. Eum dolor fuga eos magnam omnis.

  5. 33 iure enim aut commodi magni et quis sunt quo totam enim.

Sit culpa impedit aut commodi cupiditate vel alias voluptatem ad enim ipsa qui saepe odit aut vitae quas!

Et nihil repellat qui ratione doloremque aut neque tempore.

Ea molestias tenetur Ea nihil ea pariatur dolores qui odio nisi quo ipsum nisi! Aut quia consequatur et earum voluptassed beatae! Eum eligendi quosNon accusamus est voluptas incidunt.

', 'url7', '[{"key":"key1", "value":"value1"}, {"key":"key2", "value":"value2"}, {"key":"key3", "value":"value3"}, {"key":"key4", "value":"value4"}, {"key":"key5", "value":"value5"}, {"key":"key6", "value":"value6"}]', '["atribute1" ,"atribute2", "atribute3"]', 2600, 'file'), +('6bn739vrvfp6zaw', 'name8', 'Et quaerat laudantium nihil. Sed quos qui quaerat eaque recusandae qui odit. Hic ullam est incidunt tenetur illum nam debitis nisi alias eos et illo quis molestias. Non consequuntur minima ut ipsum accusamus.', '

Lorem ipsum dolor sit amet. Sit animi repellat aut quas fugitQui repudiandae. Non error officiis Ea tempora et dicta quos ut assumenda aliquam non distinctio quae! Rem nobis vero Aut quidem et quaerat adipisci sed voluptatem velit quo sunt placeat sed voluptatem alias sit voluptas sequi. Non aliquam perferendis et voluptatem minusEt rerum est voluptatum atque.

Et repudiandae galisum et assumenda excepturi aut eius aspernatur.

Qui quas accusamus et officia molestiaequi ipsum id laudantium itaque. Eum temporibus itaqueaut reprehenderit id numquam quisquam.

Et mollitia voluptatem ut fugiat odio et natus nulla ut exercitationem ipsum eum fuga distinctio.

Qui ullam libero sed nobis dolores.

Qui modi dignissimos sed eius nostrum Est harum et cumque iste et commodi illum qui dolorum maiores est harum assumenda. Id labore sint Aut quas aut repudiandae quasi aut cupiditate quia aut consectetur dolor qui ducimus distinctio sit aspernatur recusandae.

  1. Rem dignissimos rerum ut commodi iusto cum iste sequi sit consectetur autem.

  2. Aut saepe culpa aut deserunt libero ea vitae quisquam aut dolore voluptas.

  3. Sit quae pariatur vel explicabo omnis At sequi inventore.

  4. Cum magnam consequuntur qui veniam modi est reprehenderit enim.

  5. Sed voluptatem odit sit dolores minima.

', 'url8', '[{"key":"key1", "value":"value1"}, {"key":"key2", "value":"value2"}, {"key":"key3", "value":"value3"}, {"key":"key4", "value":"value4"}, {"key":"key5", "value":"value5"}, {"key":"key6", "value":"value6"}]', '["atribute1" ,"atribute2", "atribute3"]', 2700, 'data'); UPDATE product SET active = 0 WHERE id = 'zlfpc6b17gte0ot'; INSERT INTO digital_file (id, product_id, name, ext, orig_name) VALUES diff --git a/internal/models/products.go b/internal/models/products.go index 303f90a..94c09fb 100644 --- a/internal/models/products.go +++ b/internal/models/products.go @@ -16,6 +16,7 @@ type Products struct { type Product struct { Core Name string `json:"name"` + Brief string `json:"brief,omitempty"` Description string `json:"description,omitempty"` Images []File `json:"images,omitempty"` Slug string `json:"slug"` diff --git a/internal/queries/products.go b/internal/queries/products.go index fb6fd6b..63a28e2 100644 --- a/internal/queries/products.go +++ b/internal/queries/products.go @@ -33,6 +33,7 @@ func (q *ProductQueries) ListProducts(private bool, idList ...models.CartProduct SELECT DISTINCT product.id, product.name, + product.brief, product.slug, product.amount, product.active, @@ -82,6 +83,7 @@ func (q *ProductQueries) ListProducts(private bool, idList ...models.CartProduct err := rows.Scan( &product.ID, &product.Name, + &product.Brief, &product.Slug, &product.Amount, &product.Active, @@ -130,6 +132,7 @@ func (q *ProductQueries) Product(private bool, id string) (*models.Product, erro SELECT DISTINCT product.id, product.name, + product.brief, product.desc, product.slug, product.amount, @@ -160,6 +163,7 @@ func (q *ProductQueries) Product(private bool, id string) (*models.Product, erro Scan( &product.ID, &product.Name, + &product.Brief, &product.Description, &product.Slug, &product.Amount, @@ -212,8 +216,8 @@ func (q *ProductQueries) AddProduct(product *models.Product) (*models.Product, e metadata, _ := json.Marshal(product.Metadata) attributes, _ := json.Marshal(product.Attributes) - sql := `INSERT INTO product (id, name, amount, slug, metadata, attribute, desc, digital, active) VALUES (?, ?, ?, ?, ?, ?, ?, ?, FALSE) RETURNING strftime('%s', created)` - err := q.DB.QueryRowContext(context.TODO(), sql, product.ID, product.Name, product.Amount, product.Slug, metadata, attributes, product.Description, product.Digital.Type).Scan(&product.Created) + sql := `INSERT INTO product (id, name, amount, slug, metadata, attribute, brief, desc, digital, active) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, FALSE) RETURNING strftime('%s', created)` + err := q.DB.QueryRowContext(context.TODO(), sql, product.ID, product.Name, product.Amount, product.Slug, metadata, attributes, product.Brief, product.Description, product.Digital.Type).Scan(&product.Created) if err != nil { return nil, err } @@ -227,8 +231,9 @@ func (q *ProductQueries) UpdateProduct(product *models.Product) error { attributes, _ := json.Marshal(product.Attributes) seo, _ := json.Marshal(product.Seo) - _, err := q.DB.ExecContext(context.TODO(), `UPDATE product SET name = ?, desc = ?, slug = ?, amount = ?, metadata = ?, attribute = ?, seo = ?, updated = datetime('now') WHERE id = ?`, + _, err := q.DB.ExecContext(context.TODO(), `UPDATE product SET name = ?, brief = ?, desc = ?, slug = ?, amount = ?, metadata = ?, attribute = ?, seo = ?, updated = datetime('now') WHERE id = ?`, product.Name, + product.Brief, product.Description, product.Slug, product.Amount, diff --git a/migrations/20230714135923_init_db.sql b/migrations/20230714135923_init_db.sql index 852fa33..556abc0 100644 --- a/migrations/20230714135923_init_db.sql +++ b/migrations/20230714135923_init_db.sql @@ -63,7 +63,7 @@ CREATE TABLE product ( id TEXT PRIMARY KEY NOT NULL, name TEXT NOT NULL, desc TEXT NOT NULL, - slug TEXT UNIQUE NOT NULL, + slug TEXT UNIQUE NOT NULL, amount NUMERC NOT NULL, metadata JSON DEFAULT '{}' NOT NULL, attribute JSON DEFAULT '[]' NOT NULL, diff --git a/migrations/20231129131044_brief.sql b/migrations/20231129131044_brief.sql new file mode 100644 index 0000000..ab7c8c2 --- /dev/null +++ b/migrations/20231129131044_brief.sql @@ -0,0 +1,9 @@ +-- +goose Up +-- +goose StatementBegin +ALTER TABLE product ADD COLUMN "brief" TEXT NOT NULL DEFAULT ''; +-- +goose StatementEnd + +-- +goose Down +-- +goose StatementBegin +ALTER TABLE product DROP COLUMN "brief"; +-- +goose StatementEnd diff --git a/web/admin/src/components/Editor.vue b/web/admin/src/components/Editor.vue index d252d18..f501a38 100644 --- a/web/admin/src/components/Editor.vue +++ b/web/admin/src/components/Editor.vue @@ -59,7 +59,8 @@ const props = defineProps({ type: String, required: true, default: "", - }, placeholder: String + }, + placeholder: String, }); onMounted(() => { @@ -101,7 +102,7 @@ watch( .ProseMirror:focus { - outline:none; + outline: none; } button, diff --git a/web/admin/src/components/product/Add.vue b/web/admin/src/components/product/Add.vue index 6792c14..26073cc 100644 --- a/web/admin/src/components/product/Add.vue +++ b/web/admin/src/components/product/Add.vue @@ -69,9 +69,13 @@ +
+

Short description

+ +

Description

- + diff --git a/web/admin/src/components/product/Update.vue b/web/admin/src/components/product/Update.vue index 8b7b7ea..2f33cd4 100644 --- a/web/admin/src/components/product/Update.vue +++ b/web/admin/src/components/product/Update.vue @@ -80,10 +80,12 @@
- -

Description

- +

Short description

+ +
+

Description

+ @@ -109,7 +111,7 @@ import { onMounted, computed, ref } from "vue"; import FormInput from "@/components/form/Input.vue"; import FormButton from "@/components/form/Button.vue"; import FormTextarea from "@/components/form/Textarea.vue"; -import Editor from "@/components/Editor.vue" +import Editor from "@/components/Editor.vue"; import FormUpload from "@/components/form/Upload.vue"; import { costFormat, costStripe } from "@/utils/"; import { showMessage } from "@/utils/message"; @@ -128,8 +130,8 @@ const props = defineProps({ close: Function, }); -const amount = ref() -const product = ref({}) +const amount = ref(); +const product = ref({}); const emits = defineEmits(["update:modelValue"]); const products = computed({ @@ -142,14 +144,16 @@ const products = computed({ }); onMounted(() => { - getProduct() + getProduct(); }); const getProduct = async () => { - apiGet(`/api/_/products/${products.value.products[props.drawer.product.index].id}`).then(res => { + apiGet( + `/api/_/products/${products.value.products[props.drawer.product.index].id}`, + ).then((res) => { if (res.success) { product.value = res.result; - amount.value = costFormat(product.value.amount) + amount.value = costFormat(product.value.amount); if (!product.value.images) { product.value.images = []; } @@ -161,18 +165,20 @@ const getProduct = async () => { const updateProduct = async () => { product.value.amount = costStripe(amount.value); - apiUpdate(`/api/_/products/${product.value.id}`, product.value).then(res => { - if (res.success) { - products.value.products[props.drawer.product.index] = product.value; - showMessage(res.message); - } else { - showMessage(res.result, "connextError"); - } - }); + apiUpdate(`/api/_/products/${product.value.id}`, product.value).then( + (res) => { + if (res.success) { + products.value.products[props.drawer.product.index] = product.value; + showMessage(res.message); + } else { + showMessage(res.result, "connextError"); + } + }, + ); }; const deleteProduct = async () => { - apiDelete(`/api/_/products/${product.value.id}`).then(res => { + apiDelete(`/api/_/products/${product.value.id}`).then((res) => { if (res.success) { products.value.products.splice(props.drawer.product.index, 1); products.value.total--; @@ -222,7 +228,9 @@ const addProductImage = (e) => { }; const deleteProductImage = async (index) => { - apiDelete(`/api/_/products/${product.value.id}/image/${product.value.images[index].id}`).then(res => { + apiDelete( + `/api/_/products/${product.value.id}/image/${product.value.images[index].id}`, + ).then((res) => { if (res.success) { product.value.images.splice(index, 1); } else { diff --git a/web/admin/src/components/product/View.vue b/web/admin/src/components/product/View.vue index 6f93532..8a54f49 100644 --- a/web/admin/src/components/product/View.vue +++ b/web/admin/src/components/product/View.vue @@ -35,7 +35,9 @@ - + {{ product.brief }} + +
diff --git a/web/site/layouts/main.html b/web/site/layouts/main.html index 27c3783..5a997df 100644 --- a/web/site/layouts/main.html +++ b/web/site/layouts/main.html @@ -47,7 +47,7 @@ {# embed #}