package model

import (
	"time"
)

type PsManDaysReject struct {
	ID           int       `json:"id"`
	PsManDaysID  string    `json:"ps_man_days_id"`
	RejectReason string    `json:"reject_reason"`
	Sync         int       `json:"sync"`
	SyncTime     time.Time `json:"sync_time"`
	CreatedAt    time.Time `json:"created_at"`
	SalesforceID string    `json:"salesforce_id"`
}

func (PsManDaysReject) TableName() string {
	return "ps_man_days_reject"
}

type PsManDays struct {
	SalesforceID       string     `json:"salesforce_id,omitempty"`
	IsDeleted          bool       `json:"is_deleted,omitempty"`
	Name               string     `json:"name,omitempty"`
	CurrencyISOCode    string     `json:"currency_iso_code,omitempty"`
	CreatedDate        *time.Time `json:"created_date,omitempty"`
	CreatedByID        string     `json:"created_by_id,omitempty"`
	LastModifiedDate   *time.Time `json:"last_modified_date,omitempty"`
	LastModifiedByID   string     `json:"last_modified_by_id,omitempty"`
	SystemModstamp     *time.Time `json:"system_modstamp,omitempty"`
	LastActivityDate   *time.Time `json:"last_activity_date,omitempty"`
	LastViewedDate     *time.Time `json:"last_viewed_date,omitempty"`
	LastReferencedDate *time.Time `json:"last_referenced_date,omitempty"`
	OrderProduct       string     `json:"order_product,omitempty"`
	ApprovalStatus     string     `json:"approval_status,omitempty"`
	EndDate            *time.Time `json:"end_date,omitempty"`
	ManDay             float64    `json:"man_day,omitempty"`
	OpportunityProduct string     `json:"opportunity_product,omitempty"`
	OrderID            string     `json:"order_id,omitempty"`
	OwnedDM            string     `json:"owned_dm,omitempty"`
	Responsibility     string     `json:"responsibility,omitempty"`
	StartDate          *time.Time `json:"start_date,omitempty"`
	UploadTicket       bool       `json:"upload_ticket,omitempty"`
	CreatedTime        time.Time  `json:"created_time,omitempty"`
}

func (PsManDays) TableName() string {
	return "ps_man_days"
}

type SfPsManDayReject struct {
	RejectReason string `json:"Rejected_Reason__c"`
}
type SalesforceOrg struct {
	ID                             int       `gorm:"primaryKey;column:id" json:"id"`
	SfID                           string    `gorm:"column:sf_id" json:"sf_id"`
	OrgID                          string    `gorm:"column:org_id" json:"org_id"`
	OrgName                        string    `gorm:"column:org_name" json:"org_name"`
	CreatedAt                      time.Time `gorm:"column:created_at" json:"created_at"`
	LastModifiedDate               time.Time `gorm:"column:last_modified_date" json:"last_modified_date"`
	IsDeleted                      bool      `gorm:"column:is_deleted" json:"is_deleted"`
	OrgStatus                      string    `gorm:"column:org_status" json:"org_status"`
	RegionOrigin                   string    `gorm:"column:region_origin" json:"region_origin"`
	InternalUser                   bool      `gorm:"column:internal_user" json:"internal_user"`
	InternalUserBg                 string    `gorm:"column:internal_user_bg" json:"internal_user_bg"`
	Country                        string    `gorm:"column:country" json:"country"`
	Email                          string    `gorm:"column:email" json:"email"`
	Kind                           string    `gorm:"column:kind" json:"kind"`
	OwnerID                        string    `gorm:"column:owner_id" json:"owner_id"`
	OrgOwnerName                   string    `gorm:"column:org_owner_name" json:"org_owner_name"`
	OrgOwnerEmail                  string    `gorm:"column:org_owner_email" json:"org_owner_email"`
	OrgThirdPartyAccountProvider   string    `gorm:"column:org_third_party_account_provider" json:"org_third_party_account_provider"`
	OrgRegisterationStatus         string    `gorm:"column:org_registeration_status" json:"org_registeration_status"`
	OrgCreatedAt                   time.Time `gorm:"column:org_created_at" json:"org_created_at"`
	AccountID                      string    `gorm:"column:account_id" json:"account_id"`
	AccountName                    string    `gorm:"column:account_name" json:"account_name"`
	AccountAlias                   string    `gorm:"column:account_alias" json:"account_alias"`
	AccountIndustry                string    `gorm:"column:account_industry" json:"account_industry"`
	AccountSegmentation            string    `gorm:"column:account_segmentation" json:"account_segmentation"`
	AccountInternalUser            bool      `gorm:"column:account_internal_user" json:"account_internal_user"`
	AccountInternalUserBg          string    `gorm:"column:account_internal_user_bg" json:"account_internal_user_bg"`
	AccountFraudUser               string    `gorm:"column:account_fraud_user" json:"account_fraud_user"`
	AccountCloudProductionCustomer string    `gorm:"column:account_cloud_production_customer" json:"account_cloud_production_customer"`
	AccountCurrentOrderType        string    `gorm:"column:account_current_order_type" json:"account_current_order_type"`
	AccountOwnerName               string    `gorm:"column:account_owner_name" json:"account_owner_name"`
	AccountOwnerEmail              string    `gorm:"column:account_owner_email" json:"account_owner_email"`
	LeadID                         string    `gorm:"column:lead_id" json:"lead_id"`
	CurrencyIsoCode                string    `gorm:"column:currency_iso_code" json:"currency_iso_code"`
	AccumulateRevenueToOrg         string    `gorm:"column:accumulate_revenue_to_org" json:"accumulate_revenue_to_org"`
	Region                         string    `gorm:"column:region" json:"region"`
}

// 设置表名
func (SalesforceOrg) TableName() string {
	return "salesforce_org"
}

type SfOrder struct {
	ID                 int    `json:"id" gorm:"column:id"`
	SalesforceID       string `json:"salesforce_id" gorm:"column:salesforce_id"`
	OrderNumberName    string `json:"order_number_name" gorm:"column:order_number_name"`
	SubOrderNumberName string `json:"sub_order_number_name" gorm:"column:sub_order_number_name"`
}

func (SfOrder) TableName() string {
	return "salesforce_order"
}
