package app

import (
	"database/sql"

	"code.tnxs.net/taxnexus/lib/api/regs/regs_models"
)

// LicenseTypeActivityWrapper wraps the object with workflow params
type LicenseTypeActivityWrapper struct {
	Obj      regs_models.LicenseType
	APIKey   string
	SagaID   string
	SagaType string
}

// LicenseType is a first class object type
type LicenseType struct {
	ID               string
	AccountID        string
	AgentID          string
	ContactID        string
	Cost             float64
	CreatedByID      string
	CreatedDate      sql.NullTime
	DomainID         string
	Domains          []string
	Frequency        string
	Jurisdictions    []*GeoLicenseTypeInstance
	LastModifiedByID string
	LastModifiedDate sql.NullTime
	Level            string
	MetrcName        string
	Name             string
	OwnerID          string
	PicklistValue    string
	Ref              string
	Restriction      string
	Tier             string
}

// GeoLicenseTypeInstanceActivityWrapper wraps the object with workflow params
type GeoLicenseTypeInstanceActivityWrapper struct {
	Obj      regs_models.GeoLicenseTypeInstance
	APIKey   string
	SagaID   string
	SagaType string
}

// GeoLicenseTypeInstance is a first class object type
type GeoLicenseTypeInstance struct {
	ID               string
	CountryID        string
	CountyID         string
	CreatedByID      string
	CreatedDate      sql.NullTime
	LastModifiedByID string
	LastModifiedDate sql.NullTime
	LicenseTypeID    string
	OwnerID          string
	OrderID          string
	ObjectType       string
	PlaceID          string
	StateID          string
}

// DomainLicenseTypeInstanceActivityWrapper wraps the object with workflow params
type DomainLicenseTypeInstanceActivityWrapper struct {
	//	Obj       regs_models.DomainLicenseTypeInstance
	APIKey   string
	SagaID   string
	SagaType string
}

// DomainLicenseTypeInstance is a first class object type
type DomainLicenseTypeInstance struct {
	ID               string
	DomainID         string
	CreatedByID      string
	CreatedDate      sql.NullTime
	LastModifiedByID string
	LastModifiedDate sql.NullTime
	LicenseTypeID    string
	OwnerID          string
}
