// Author : Eric Kim
// Build Date : 23 Jul 2008  Last Update 02 Aug 2008
// End-Agent for Passcon Multi OS go binding with Windows, MacOS, iOS, and Android
// All rights are reserved.

package locals

import (
	"github.com/go-xorm/xorm"
)

// 0. Controller  /////////////////////////////////////////////////////////////////

type SyncController struct {
	// Ctx            *context.Context
	UpdateFieldList string
	Scb             SyncControllerBase
	Db              *xorm.Engine
}

var GSync SyncController

type SyncControllerBase struct {
	ConnString string
	OfcCode    string
}

// 1. DB /////////////////////////////////////////////////////////////////

type DbCom struct {
	StartTime  int64 `xorm:"created"`
	EndTime    int64
	UpdateTime int64 `xorm:"updated"`
	Ip         string
	Usr        int64
}

// 2. Request  /////////////////////////////////////////////////////////////////

type ListFormBalanceVars struct {
	YyyyMm     string
	SelectedId int
	StartCode  string
	EndCode    string
}

// 2. Response  /////////////////////////////////////////////////////////////////

type ProductPage struct {
	SolutionType string
	ThemeType    string
	ProductPage  []Product
}

type Product struct {
	SolutionName  SolutionType
	Version       string
	Emails        []string
	DomainName    string
	DomainURI     string
	ItemName      string
	ItemNick      string
	ModelName     string
	ModelNo       string
	BrandName     string
	Sku           string
	ItemCategory  string
	Manufacturer  string
	Origin        string
	Language      string
	Currency      string
	SalesPrice    float32
	DeliveryPrice float32
	MinimumQty    float32
	UserCredit    float32
	Options       []Option
	Images        []string
	ShortDesc     string
	OriginDesc    string
	TextDesc      string
}

type SolutionType string

var (
	SolutionTypeWooCommerce SolutionType = "WOOCOMMERCE"
	SolutionTypeShopify     SolutionType = "SHOPIFY"
	SolutionTypeMagento     SolutionType = "MAGENTO"
	SolutionTypeCafe24      SolutionType = "CAFE24"
	SolutionTypeGodo        SolutionType = "GODO"
	SolutionTypeYoung       SolutionType = "YOUNG"
	SolutionTypeOthers      SolutionType = "OTHERS"
)

type Option struct {
	Name    string
	Choices []Choice
}

type Choice struct {
	Name  string
	Price float32
}

type Image struct {
	Path   string
	Width  int `json:"-"`
	Height int `json:"-"`
}

type AbangoApp struct {
	YDB *xorm.Engine
}
