package models

import "time"

type CallRequest struct {
	ID uint `gorm:"primaryKey;autoIncrement" json:"id"`
	UserID uint `gorm:"column:userId;not null;index" json:"userId"`
	AstrologerID *uint `gorm:"column:astrologerId;index" json:"astrologerId,omitempty"`
	CallStatus *string `gorm:"column:callStatus;type:varchar(45)" json:"callStatus,omitempty"`
	ChannelName *string `gorm:"column:channelName;type:varchar(45)" json:"channelName,omitempty"`
	Token *string `gorm:"column:token;type:varchar(400)" json:"token,omitempty"`
	TotalMin *string `gorm:"column:totalMin;type:varchar(45)" json:"totalMin,omitempty"`
	CallRate *string `gorm:"column:callRate;type:varchar(45)" json:"callRate,omitempty"`
	Deduction *float64 `gorm:"column:deduction;type:double" json:"deduction,omitempty"`
	CallDuration *string `gorm:"column:call_duration;type:varchar(255)" json:"call_duration,omitempty"`
	DeductionFromAstrologer *float64 `gorm:"column:deductionFromAstrologer;type:double" json:"deductionFromAstrologer"`
	SID *string `gorm:"column:sId;type:varchar(45)" json:"sId"`
	SID1 *string `gorm:"column:sId1;type:varchar(45)" json:"sId1"`
	ChatID *string `gorm:"column:chatId;type:varchar(200)" json:"chatId"`
	IsFreeSession *bool `gorm:"column:isFreeSession" json:"isFreeSession"`
	CallType int `gorm:"column:call_type;default:0" json:"call_type"`
	CreatedAt *time.Time `gorm:"column:created_at" json:"created_at"`
	UpdatedAt *time.Time `gorm:"column:updated_at" json:"updated_at"`
	// Relations
	User User `gorm:"foreignKey:UserID;references:ID" json:"user"`
	Astrologer User `gorm:"foreignKey:AstrologerID;references:ID" json:"astrologer"`
}

func (CallRequest) TableName() string {
	return "callrequest"
}