package entity

import (
	"time"
)

type PaymentMethod struct {
	Method        string `json:"method"`
	ChannelName   string `json:"channel_name" validate:"required"`
	AccountName   string `json:"account_name" validate:"required,number"`
	AccountNumber string `json:"account_number" validate:"required,number"`
	ExtraInfo     string `json:"extra_info"`
}

type StoreCreateRequest struct {
	ApartmentId          int64           `json:"apartment_id" validate:"required,number"`
	ApartmentHouseNumber string          `json:"apartment_house_number" validate:"required"`
	Name                 string          `json:"name" validate:"required"`
	Description          string          `json:"description" validate:"required"`
	Image                string          `json:"image" `
	PaymentAcceptCash    bool            `json:"payment_accept_cash"`
	PaymentMethod        []PaymentMethod `json:"payment_method" validate:"required"`
}

type StoreCreateReturn struct {
	Id   int64  `json:"id"`
	Name string `json:"name"`
}

type StoreCreateResponse struct {
	Response
	Data StoreCreateReturn `json:"data"`
}

type SellerStore struct {
	Id                   int64           `json:"id"`
	Name                 string          `json:"name"`
	Image                string          `json:"image"`
	Description          string          `json:"description"`
	Status               int             `json:"status"`
	ApartmentId          int64           `json:"apartment_id"`
	ApartmentHouseNumber string          `json:"apartment_house_number"`
	PaymentMethod        []PaymentMethod `json:"payment_method"`
	PaymentAcceptCash    bool            `json:"payment_accept_cash"`
	CreatedAt            *time.Time      `json:"created_at"`
	UpdatedAt            *time.Time      `json:"updated_at"`
}

type UserStoreResponse struct {
	Code    int           `json:"code"`
	Message string        `json:"message"`
	Data    []SellerStore `json:"data"`
}

type UserSingleStoreResponse struct {
	Code    int         `json:"code"`
	Message string      `json:"message"`
	Data    SellerStore `json:"data"`
}
