package dto_astrologer

type OrderActivityListRequest struct {
	Page        int    `form:"page" json:"page"`
	Limit       int    `form:"limit" json:"limit"`
	Search      string `form:"search" json:"search"`
	Status      string `form:"status" json:"status"`
	RequestType string `form:"requestType" json:"requestType"`
	SubTab      string `form:"subTab" json:"subTab"`
}

type SaveWaitlistRequest struct {
	UserID       uint   `json:"userId" binding:"required"`
	UserName     string `json:"userName"`
	Profile      string `json:"profile"`
	Time         string `json:"time"`
	ChannelName  string `json:"channelName"`
	RequestType  string `json:"requestType" binding:"required"`
	Status       string `json:"status"`
	UserFcmToken string `json:"userFcmToken"`
}

type OrderActivityListResponse[T any] struct {
	RecordList  []T   `json:"recordList"`
	TotalRecord int64 `json:"totalRecord"`
	CurrentPage int   `json:"currentPage"`
	Limit       int   `json:"limit"`
}

type WaitlistResponse struct {
	ID           uint   `gorm:"column:id" json:"id"`
	UserID       uint   `gorm:"column:user_id" json:"userId"`
	UserName     string `gorm:"column:user_name" json:"userName"`
	Profile      string `gorm:"column:profile" json:"profile"`
	Time         string `gorm:"column:time" json:"time"`
	ChannelName  string `gorm:"column:channel_name" json:"channelName"`
	RequestType  string `gorm:"column:request_type" json:"requestType"`
	Status       string `gorm:"column:status" json:"status"`
	UserFcmToken string `gorm:"column:user_fcm_token" json:"userFcmToken"`
	CreatedAt    string `gorm:"column:created_at" json:"createdAt"`
}

type ChatOrderHistoryResponse struct {
	ID                uint    `gorm:"column:id" json:"id"`
	ChatHistoryNumber string  `gorm:"column:chat_history_number" json:"chatHistoryNumber"`
	ChatStatus        string  `gorm:"column:chat_status" json:"chatStatus"`
	ChatDuration      int     `gorm:"column:chat_duration" json:"chatDuration"`
	DeductionAmount   float64 `gorm:"column:deduction_amount" json:"deductionAmount"`
	RatePerMinute     float64 `gorm:"column:rate_per_minute" json:"ratePerMinute"`
	ChatType          string  `gorm:"column:chat_type" json:"chatType"`
	UserID            uint    `gorm:"column:user_id" json:"userId"`
	UserName          string  `gorm:"column:user_name" json:"userName"`
	Profile           string  `gorm:"column:profile" json:"profile"`
	Name              string  `gorm:"column:name" json:"name"`
	BirthDate         string  `gorm:"column:birth_date" json:"birthDate"`
	BirthTime         string  `gorm:"column:birth_time" json:"birthTime"`
	BirthPlace        string  `gorm:"column:birth_place" json:"birthPlace"`
	Gender            string  `gorm:"column:gender" json:"gender"`
	CreatedAt         string  `gorm:"column:created_at" json:"createdAt"`
}

type CallOrderHistoryResponse struct {
	ID                uint    `gorm:"column:id" json:"id"`
	CallHistoryNumber string  `gorm:"column:call_history_number" json:"callHistoryNumber"`
	CallStatus        string  `gorm:"column:call_status" json:"callStatus"`
	CallDuration      int     `gorm:"column:call_duration" json:"callDuration"`
	DeductionAmount   float64 `gorm:"column:deduction_amount" json:"deductionAmount"`
	RatePerMinute     float64 `gorm:"column:rate_per_minute" json:"ratePerMinute"`
	CallType          string  `gorm:"column:call_type" json:"callType"`
	UserID            uint    `gorm:"column:user_id" json:"userId"`
	UserName          string  `gorm:"column:user_name" json:"userName"`
	Profile           string  `gorm:"column:profile" json:"profile"`
	Name              string  `gorm:"column:name" json:"name"`
	BirthDate         string  `gorm:"column:birth_date" json:"birthDate"`
	BirthTime         string  `gorm:"column:birth_time" json:"birthTime"`
	BirthPlace        string  `gorm:"column:birth_place" json:"birthPlace"`
	Gender            string  `gorm:"column:gender" json:"gender"`
	CreatedAt         string  `gorm:"column:created_at" json:"createdAt"`
}

type AstromallOrderHistoryResponse struct {
	ID                uint    `gorm:"column:id" json:"id"`
	OrderNumber       string  `gorm:"column:order_number" json:"orderNumber"`
	UserID            uint    `gorm:"column:user_id" json:"userId"`
	UserName          string  `gorm:"column:user_name" json:"userName"`
	Profile           string  `gorm:"column:profile" json:"profile"`
	ProductID         uint    `gorm:"column:product_id" json:"productId"`
	ProductName       string  `gorm:"column:product_name" json:"productName"`
	Quantity          int     `gorm:"column:quantity" json:"quantity"`
	TotalAmount       float64 `gorm:"column:total_amount" json:"totalAmount"`
	AstrologerEarning float64 `gorm:"column:astrologer_earning" json:"astrologerEarning"`
	AdminCommission   float64 `gorm:"column:admin_commission" json:"adminCommission"`
	Status            string  `gorm:"column:status" json:"status"`
	CreatedAt         string  `gorm:"column:created_at" json:"createdAt"`
}
