init
This commit is contained in:
commit
00f28e3f7b
|
@ -0,0 +1 @@
|
|||
.idea
|
|
@ -0,0 +1,10 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"cake_crm/internal/models/storage/storage_file"
|
||||
)
|
||||
|
||||
func main() {
|
||||
storage := storage_file.NewStorageFile("resources/db.json")
|
||||
_ = storage
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package storage
|
||||
|
||||
import "context"
|
||||
|
||||
type Product struct {
|
||||
ID int `json:"id"`
|
||||
Name string `json:"name"`
|
||||
// todo
|
||||
}
|
||||
|
||||
type Breadcrumb struct {
|
||||
Name string `json:"name"`
|
||||
URL string `json:"url"`
|
||||
}
|
||||
|
||||
type IStorage interface {
|
||||
GetAllProducts(ctx context.Context) ([]Product, error)
|
||||
GetProductByID(ctx context.Context, id int) (Product, error)
|
||||
GetBreadcrumbs(ctx context.Context, id int) ([]Breadcrumb, error)
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package storage_file
|
||||
|
||||
import (
|
||||
"cake_crm/internal/models/storage"
|
||||
"context"
|
||||
)
|
||||
|
||||
type storageFile struct {
|
||||
filepath string
|
||||
}
|
||||
|
||||
func NewStorageFile(filepath string) storage.IStorage {
|
||||
return &storageFile{
|
||||
filepath: filepath,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *storageFile) GetAllProducts(ctx context.Context) ([]storage.Product, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (s *storageFile) GetProductByID(ctx context.Context, id int) (storage.Product, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (s *storageFile) GetBreadcrumbs(ctx context.Context, id int) ([]storage.Breadcrumb, error) {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
|
@ -0,0 +1,126 @@
|
|||
{
|
||||
"products": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "\"Глаголик\" ванильно-сливочный",
|
||||
"url": "/products/1",
|
||||
"images": [
|
||||
"/products/1/image-1-600x600.jpg",
|
||||
"/products/1/image-2-600x600.jpg",
|
||||
"/products/1/image-3-600x600.jpg"
|
||||
],
|
||||
"description": "",
|
||||
"grouped_products": [
|
||||
{
|
||||
"name": "\"Глаголик\" лимонный",
|
||||
"url": "/products/2",
|
||||
"image": "/products/2/image-100x100.jpg"
|
||||
},
|
||||
{
|
||||
"name": "\"Глаголик\" мятный",
|
||||
"url": "/products/3",
|
||||
"image": "/products/3/image-100x100.jpg"
|
||||
}
|
||||
],
|
||||
"unit": "kg",
|
||||
"inventory": 100,
|
||||
"variants": [
|
||||
{
|
||||
"price": 16500,
|
||||
"properties": [
|
||||
{
|
||||
"name": "min",
|
||||
"value": "0"
|
||||
},
|
||||
{
|
||||
"name": "max",
|
||||
"value": "5"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"price": 16000,
|
||||
"properties": [
|
||||
{
|
||||
"name": "min",
|
||||
"value": "6"
|
||||
},
|
||||
{
|
||||
"name": "max",
|
||||
"value": "60"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"price": 15500,
|
||||
"properties": [
|
||||
{
|
||||
"name": "min",
|
||||
"value": "61"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"characteristics": [
|
||||
{
|
||||
"name": "Вкус",
|
||||
"value": "Ванильно-сливочный"
|
||||
}
|
||||
],
|
||||
"category": "1"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "Пахлава ореховая экран 1,5 кг",
|
||||
"url": "/products/4",
|
||||
"images": [
|
||||
"/products/4/image-1-600x600.jpg",
|
||||
"/products/4/image-2-600x600.jpg",
|
||||
"/products/4/image-3-600x600.jpg"
|
||||
],
|
||||
"description": "",
|
||||
"grouped_products": [],
|
||||
"unit": "piece",
|
||||
"inventory": 100,
|
||||
"variants": [
|
||||
{
|
||||
"price": 29000,
|
||||
"properties": [
|
||||
{
|
||||
"name": "min",
|
||||
"value": "0"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"characteristics": [
|
||||
{
|
||||
"name": "Вкус",
|
||||
"value": "Ореховая"
|
||||
}
|
||||
],
|
||||
"category": "2"
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
{
|
||||
"id": 0,
|
||||
"name": "Главная",
|
||||
"url": "/categories/0",
|
||||
"children": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Пряники",
|
||||
"url": "/categories/1",
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "Пахлава",
|
||||
"url": "/categories/2",
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
Loading…
Reference in New Issue