package models

import "time"

type Astrologer struct {
	ID                    uint       `gorm:"column:id;primaryKey"`
	UserID                uint       `gorm:"column:userId"`
	Name                  string     `gorm:"column:name"`
	Email                 string     `gorm:"column:email"`
	ContactNo             string     `gorm:"column:contactNo"`
	ProfileImage          string     `gorm:"column:profileImage"`
	Gender                string     `gorm:"column:gender"`
	PrimarySkill          string     `gorm:"column:primarySkill"`
	AllSkill              string     `gorm:"column:allSkill"`
	LanguageKnown         string     `gorm:"column:languageKnown"`
	AstrologerCategoryID  string     `gorm:"column:astrologerCategoryId"`
	// Public-facing name. The list screens fall back to Name when it is
	// empty, because only profiles completed after
	// migrations/2026_09_09_astrologer_display_name.sql have one.
	DisplayName           string     `gorm:"column:displayName"`
	Charge                int        `gorm:"column:charge"`
	// Per-minute consultation rates, rupees. chatRate was missing here even
	// though the column has always existed, so a chat consultation had no
	// rate to bill against on this side.
	ChatRate              int        `gorm:"column:chatRate"`
	VideoCallRate         int        `gorm:"column:videoCallRate"`
	AudioCallRate         int        `gorm:"column:audioCallRate"`
	ReportRate            int        `gorm:"column:reportRate"`
	ChatStatus            string     `gorm:"column:chatStatus"`
	CallStatus            string     `gorm:"column:callStatus"`
	Experience            float64    `gorm:"column:experience"`
	IsVerified            bool       `gorm:"column:isVerified"`
	IsActive              bool       `gorm:"column:isActive"`
	IsDelete              bool       `gorm:"column:isDelete"`
	CreatedAt             *time.Time `gorm:"column:created_at"`
	UpdatedAt             *time.Time `gorm:"column:updated_at"`
}

func (Astrologer) TableName() string {
	return "astrologers"
}