- 新增 accounts.rate_multiplier(默认 1.0,允许 0) - 使用 usage_logs.account_rate_multiplier 记录倍率快照,避免历史回算 - 统计/导出/管理端展示账号口径费用(total_cost * account_rate_multiplier)
445 lines
18 KiB
Go
445 lines
18 KiB
Go
// Code generated by ent, DO NOT EDIT.
|
|
|
|
package usagelog
|
|
|
|
import (
|
|
"time"
|
|
|
|
"entgo.io/ent/dialect/sql"
|
|
"entgo.io/ent/dialect/sql/sqlgraph"
|
|
)
|
|
|
|
const (
|
|
// Label holds the string label denoting the usagelog type in the database.
|
|
Label = "usage_log"
|
|
// FieldID holds the string denoting the id field in the database.
|
|
FieldID = "id"
|
|
// FieldUserID holds the string denoting the user_id field in the database.
|
|
FieldUserID = "user_id"
|
|
// FieldAPIKeyID holds the string denoting the api_key_id field in the database.
|
|
FieldAPIKeyID = "api_key_id"
|
|
// FieldAccountID holds the string denoting the account_id field in the database.
|
|
FieldAccountID = "account_id"
|
|
// FieldRequestID holds the string denoting the request_id field in the database.
|
|
FieldRequestID = "request_id"
|
|
// FieldModel holds the string denoting the model field in the database.
|
|
FieldModel = "model"
|
|
// FieldGroupID holds the string denoting the group_id field in the database.
|
|
FieldGroupID = "group_id"
|
|
// FieldSubscriptionID holds the string denoting the subscription_id field in the database.
|
|
FieldSubscriptionID = "subscription_id"
|
|
// FieldInputTokens holds the string denoting the input_tokens field in the database.
|
|
FieldInputTokens = "input_tokens"
|
|
// FieldOutputTokens holds the string denoting the output_tokens field in the database.
|
|
FieldOutputTokens = "output_tokens"
|
|
// FieldCacheCreationTokens holds the string denoting the cache_creation_tokens field in the database.
|
|
FieldCacheCreationTokens = "cache_creation_tokens"
|
|
// FieldCacheReadTokens holds the string denoting the cache_read_tokens field in the database.
|
|
FieldCacheReadTokens = "cache_read_tokens"
|
|
// FieldCacheCreation5mTokens holds the string denoting the cache_creation_5m_tokens field in the database.
|
|
FieldCacheCreation5mTokens = "cache_creation_5m_tokens"
|
|
// FieldCacheCreation1hTokens holds the string denoting the cache_creation_1h_tokens field in the database.
|
|
FieldCacheCreation1hTokens = "cache_creation_1h_tokens"
|
|
// FieldInputCost holds the string denoting the input_cost field in the database.
|
|
FieldInputCost = "input_cost"
|
|
// FieldOutputCost holds the string denoting the output_cost field in the database.
|
|
FieldOutputCost = "output_cost"
|
|
// FieldCacheCreationCost holds the string denoting the cache_creation_cost field in the database.
|
|
FieldCacheCreationCost = "cache_creation_cost"
|
|
// FieldCacheReadCost holds the string denoting the cache_read_cost field in the database.
|
|
FieldCacheReadCost = "cache_read_cost"
|
|
// FieldTotalCost holds the string denoting the total_cost field in the database.
|
|
FieldTotalCost = "total_cost"
|
|
// FieldActualCost holds the string denoting the actual_cost field in the database.
|
|
FieldActualCost = "actual_cost"
|
|
// FieldRateMultiplier holds the string denoting the rate_multiplier field in the database.
|
|
FieldRateMultiplier = "rate_multiplier"
|
|
// FieldAccountRateMultiplier holds the string denoting the account_rate_multiplier field in the database.
|
|
FieldAccountRateMultiplier = "account_rate_multiplier"
|
|
// FieldBillingType holds the string denoting the billing_type field in the database.
|
|
FieldBillingType = "billing_type"
|
|
// FieldStream holds the string denoting the stream field in the database.
|
|
FieldStream = "stream"
|
|
// FieldDurationMs holds the string denoting the duration_ms field in the database.
|
|
FieldDurationMs = "duration_ms"
|
|
// FieldFirstTokenMs holds the string denoting the first_token_ms field in the database.
|
|
FieldFirstTokenMs = "first_token_ms"
|
|
// FieldUserAgent holds the string denoting the user_agent field in the database.
|
|
FieldUserAgent = "user_agent"
|
|
// FieldIPAddress holds the string denoting the ip_address field in the database.
|
|
FieldIPAddress = "ip_address"
|
|
// FieldImageCount holds the string denoting the image_count field in the database.
|
|
FieldImageCount = "image_count"
|
|
// FieldImageSize holds the string denoting the image_size field in the database.
|
|
FieldImageSize = "image_size"
|
|
// FieldCreatedAt holds the string denoting the created_at field in the database.
|
|
FieldCreatedAt = "created_at"
|
|
// EdgeUser holds the string denoting the user edge name in mutations.
|
|
EdgeUser = "user"
|
|
// EdgeAPIKey holds the string denoting the api_key edge name in mutations.
|
|
EdgeAPIKey = "api_key"
|
|
// EdgeAccount holds the string denoting the account edge name in mutations.
|
|
EdgeAccount = "account"
|
|
// EdgeGroup holds the string denoting the group edge name in mutations.
|
|
EdgeGroup = "group"
|
|
// EdgeSubscription holds the string denoting the subscription edge name in mutations.
|
|
EdgeSubscription = "subscription"
|
|
// Table holds the table name of the usagelog in the database.
|
|
Table = "usage_logs"
|
|
// UserTable is the table that holds the user relation/edge.
|
|
UserTable = "usage_logs"
|
|
// UserInverseTable is the table name for the User entity.
|
|
// It exists in this package in order to avoid circular dependency with the "user" package.
|
|
UserInverseTable = "users"
|
|
// UserColumn is the table column denoting the user relation/edge.
|
|
UserColumn = "user_id"
|
|
// APIKeyTable is the table that holds the api_key relation/edge.
|
|
APIKeyTable = "usage_logs"
|
|
// APIKeyInverseTable is the table name for the APIKey entity.
|
|
// It exists in this package in order to avoid circular dependency with the "apikey" package.
|
|
APIKeyInverseTable = "api_keys"
|
|
// APIKeyColumn is the table column denoting the api_key relation/edge.
|
|
APIKeyColumn = "api_key_id"
|
|
// AccountTable is the table that holds the account relation/edge.
|
|
AccountTable = "usage_logs"
|
|
// AccountInverseTable is the table name for the Account entity.
|
|
// It exists in this package in order to avoid circular dependency with the "account" package.
|
|
AccountInverseTable = "accounts"
|
|
// AccountColumn is the table column denoting the account relation/edge.
|
|
AccountColumn = "account_id"
|
|
// GroupTable is the table that holds the group relation/edge.
|
|
GroupTable = "usage_logs"
|
|
// GroupInverseTable is the table name for the Group entity.
|
|
// It exists in this package in order to avoid circular dependency with the "group" package.
|
|
GroupInverseTable = "groups"
|
|
// GroupColumn is the table column denoting the group relation/edge.
|
|
GroupColumn = "group_id"
|
|
// SubscriptionTable is the table that holds the subscription relation/edge.
|
|
SubscriptionTable = "usage_logs"
|
|
// SubscriptionInverseTable is the table name for the UserSubscription entity.
|
|
// It exists in this package in order to avoid circular dependency with the "usersubscription" package.
|
|
SubscriptionInverseTable = "user_subscriptions"
|
|
// SubscriptionColumn is the table column denoting the subscription relation/edge.
|
|
SubscriptionColumn = "subscription_id"
|
|
)
|
|
|
|
// Columns holds all SQL columns for usagelog fields.
|
|
var Columns = []string{
|
|
FieldID,
|
|
FieldUserID,
|
|
FieldAPIKeyID,
|
|
FieldAccountID,
|
|
FieldRequestID,
|
|
FieldModel,
|
|
FieldGroupID,
|
|
FieldSubscriptionID,
|
|
FieldInputTokens,
|
|
FieldOutputTokens,
|
|
FieldCacheCreationTokens,
|
|
FieldCacheReadTokens,
|
|
FieldCacheCreation5mTokens,
|
|
FieldCacheCreation1hTokens,
|
|
FieldInputCost,
|
|
FieldOutputCost,
|
|
FieldCacheCreationCost,
|
|
FieldCacheReadCost,
|
|
FieldTotalCost,
|
|
FieldActualCost,
|
|
FieldRateMultiplier,
|
|
FieldAccountRateMultiplier,
|
|
FieldBillingType,
|
|
FieldStream,
|
|
FieldDurationMs,
|
|
FieldFirstTokenMs,
|
|
FieldUserAgent,
|
|
FieldIPAddress,
|
|
FieldImageCount,
|
|
FieldImageSize,
|
|
FieldCreatedAt,
|
|
}
|
|
|
|
// ValidColumn reports if the column name is valid (part of the table columns).
|
|
func ValidColumn(column string) bool {
|
|
for i := range Columns {
|
|
if column == Columns[i] {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
var (
|
|
// RequestIDValidator is a validator for the "request_id" field. It is called by the builders before save.
|
|
RequestIDValidator func(string) error
|
|
// ModelValidator is a validator for the "model" field. It is called by the builders before save.
|
|
ModelValidator func(string) error
|
|
// DefaultInputTokens holds the default value on creation for the "input_tokens" field.
|
|
DefaultInputTokens int
|
|
// DefaultOutputTokens holds the default value on creation for the "output_tokens" field.
|
|
DefaultOutputTokens int
|
|
// DefaultCacheCreationTokens holds the default value on creation for the "cache_creation_tokens" field.
|
|
DefaultCacheCreationTokens int
|
|
// DefaultCacheReadTokens holds the default value on creation for the "cache_read_tokens" field.
|
|
DefaultCacheReadTokens int
|
|
// DefaultCacheCreation5mTokens holds the default value on creation for the "cache_creation_5m_tokens" field.
|
|
DefaultCacheCreation5mTokens int
|
|
// DefaultCacheCreation1hTokens holds the default value on creation for the "cache_creation_1h_tokens" field.
|
|
DefaultCacheCreation1hTokens int
|
|
// DefaultInputCost holds the default value on creation for the "input_cost" field.
|
|
DefaultInputCost float64
|
|
// DefaultOutputCost holds the default value on creation for the "output_cost" field.
|
|
DefaultOutputCost float64
|
|
// DefaultCacheCreationCost holds the default value on creation for the "cache_creation_cost" field.
|
|
DefaultCacheCreationCost float64
|
|
// DefaultCacheReadCost holds the default value on creation for the "cache_read_cost" field.
|
|
DefaultCacheReadCost float64
|
|
// DefaultTotalCost holds the default value on creation for the "total_cost" field.
|
|
DefaultTotalCost float64
|
|
// DefaultActualCost holds the default value on creation for the "actual_cost" field.
|
|
DefaultActualCost float64
|
|
// DefaultRateMultiplier holds the default value on creation for the "rate_multiplier" field.
|
|
DefaultRateMultiplier float64
|
|
// DefaultBillingType holds the default value on creation for the "billing_type" field.
|
|
DefaultBillingType int8
|
|
// DefaultStream holds the default value on creation for the "stream" field.
|
|
DefaultStream bool
|
|
// UserAgentValidator is a validator for the "user_agent" field. It is called by the builders before save.
|
|
UserAgentValidator func(string) error
|
|
// IPAddressValidator is a validator for the "ip_address" field. It is called by the builders before save.
|
|
IPAddressValidator func(string) error
|
|
// DefaultImageCount holds the default value on creation for the "image_count" field.
|
|
DefaultImageCount int
|
|
// ImageSizeValidator is a validator for the "image_size" field. It is called by the builders before save.
|
|
ImageSizeValidator func(string) error
|
|
// DefaultCreatedAt holds the default value on creation for the "created_at" field.
|
|
DefaultCreatedAt func() time.Time
|
|
)
|
|
|
|
// OrderOption defines the ordering options for the UsageLog queries.
|
|
type OrderOption func(*sql.Selector)
|
|
|
|
// ByID orders the results by the id field.
|
|
func ByID(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldID, opts...).ToFunc()
|
|
}
|
|
|
|
// ByUserID orders the results by the user_id field.
|
|
func ByUserID(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldUserID, opts...).ToFunc()
|
|
}
|
|
|
|
// ByAPIKeyID orders the results by the api_key_id field.
|
|
func ByAPIKeyID(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldAPIKeyID, opts...).ToFunc()
|
|
}
|
|
|
|
// ByAccountID orders the results by the account_id field.
|
|
func ByAccountID(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldAccountID, opts...).ToFunc()
|
|
}
|
|
|
|
// ByRequestID orders the results by the request_id field.
|
|
func ByRequestID(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldRequestID, opts...).ToFunc()
|
|
}
|
|
|
|
// ByModel orders the results by the model field.
|
|
func ByModel(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldModel, opts...).ToFunc()
|
|
}
|
|
|
|
// ByGroupID orders the results by the group_id field.
|
|
func ByGroupID(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldGroupID, opts...).ToFunc()
|
|
}
|
|
|
|
// BySubscriptionID orders the results by the subscription_id field.
|
|
func BySubscriptionID(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldSubscriptionID, opts...).ToFunc()
|
|
}
|
|
|
|
// ByInputTokens orders the results by the input_tokens field.
|
|
func ByInputTokens(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldInputTokens, opts...).ToFunc()
|
|
}
|
|
|
|
// ByOutputTokens orders the results by the output_tokens field.
|
|
func ByOutputTokens(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldOutputTokens, opts...).ToFunc()
|
|
}
|
|
|
|
// ByCacheCreationTokens orders the results by the cache_creation_tokens field.
|
|
func ByCacheCreationTokens(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldCacheCreationTokens, opts...).ToFunc()
|
|
}
|
|
|
|
// ByCacheReadTokens orders the results by the cache_read_tokens field.
|
|
func ByCacheReadTokens(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldCacheReadTokens, opts...).ToFunc()
|
|
}
|
|
|
|
// ByCacheCreation5mTokens orders the results by the cache_creation_5m_tokens field.
|
|
func ByCacheCreation5mTokens(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldCacheCreation5mTokens, opts...).ToFunc()
|
|
}
|
|
|
|
// ByCacheCreation1hTokens orders the results by the cache_creation_1h_tokens field.
|
|
func ByCacheCreation1hTokens(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldCacheCreation1hTokens, opts...).ToFunc()
|
|
}
|
|
|
|
// ByInputCost orders the results by the input_cost field.
|
|
func ByInputCost(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldInputCost, opts...).ToFunc()
|
|
}
|
|
|
|
// ByOutputCost orders the results by the output_cost field.
|
|
func ByOutputCost(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldOutputCost, opts...).ToFunc()
|
|
}
|
|
|
|
// ByCacheCreationCost orders the results by the cache_creation_cost field.
|
|
func ByCacheCreationCost(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldCacheCreationCost, opts...).ToFunc()
|
|
}
|
|
|
|
// ByCacheReadCost orders the results by the cache_read_cost field.
|
|
func ByCacheReadCost(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldCacheReadCost, opts...).ToFunc()
|
|
}
|
|
|
|
// ByTotalCost orders the results by the total_cost field.
|
|
func ByTotalCost(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldTotalCost, opts...).ToFunc()
|
|
}
|
|
|
|
// ByActualCost orders the results by the actual_cost field.
|
|
func ByActualCost(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldActualCost, opts...).ToFunc()
|
|
}
|
|
|
|
// ByRateMultiplier orders the results by the rate_multiplier field.
|
|
func ByRateMultiplier(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldRateMultiplier, opts...).ToFunc()
|
|
}
|
|
|
|
// ByAccountRateMultiplier orders the results by the account_rate_multiplier field.
|
|
func ByAccountRateMultiplier(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldAccountRateMultiplier, opts...).ToFunc()
|
|
}
|
|
|
|
// ByBillingType orders the results by the billing_type field.
|
|
func ByBillingType(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldBillingType, opts...).ToFunc()
|
|
}
|
|
|
|
// ByStream orders the results by the stream field.
|
|
func ByStream(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldStream, opts...).ToFunc()
|
|
}
|
|
|
|
// ByDurationMs orders the results by the duration_ms field.
|
|
func ByDurationMs(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldDurationMs, opts...).ToFunc()
|
|
}
|
|
|
|
// ByFirstTokenMs orders the results by the first_token_ms field.
|
|
func ByFirstTokenMs(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldFirstTokenMs, opts...).ToFunc()
|
|
}
|
|
|
|
// ByUserAgent orders the results by the user_agent field.
|
|
func ByUserAgent(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldUserAgent, opts...).ToFunc()
|
|
}
|
|
|
|
// ByIPAddress orders the results by the ip_address field.
|
|
func ByIPAddress(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldIPAddress, opts...).ToFunc()
|
|
}
|
|
|
|
// ByImageCount orders the results by the image_count field.
|
|
func ByImageCount(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldImageCount, opts...).ToFunc()
|
|
}
|
|
|
|
// ByImageSize orders the results by the image_size field.
|
|
func ByImageSize(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldImageSize, opts...).ToFunc()
|
|
}
|
|
|
|
// ByCreatedAt orders the results by the created_at field.
|
|
func ByCreatedAt(opts ...sql.OrderTermOption) OrderOption {
|
|
return sql.OrderByField(FieldCreatedAt, opts...).ToFunc()
|
|
}
|
|
|
|
// ByUserField orders the results by user field.
|
|
func ByUserField(field string, opts ...sql.OrderTermOption) OrderOption {
|
|
return func(s *sql.Selector) {
|
|
sqlgraph.OrderByNeighborTerms(s, newUserStep(), sql.OrderByField(field, opts...))
|
|
}
|
|
}
|
|
|
|
// ByAPIKeyField orders the results by api_key field.
|
|
func ByAPIKeyField(field string, opts ...sql.OrderTermOption) OrderOption {
|
|
return func(s *sql.Selector) {
|
|
sqlgraph.OrderByNeighborTerms(s, newAPIKeyStep(), sql.OrderByField(field, opts...))
|
|
}
|
|
}
|
|
|
|
// ByAccountField orders the results by account field.
|
|
func ByAccountField(field string, opts ...sql.OrderTermOption) OrderOption {
|
|
return func(s *sql.Selector) {
|
|
sqlgraph.OrderByNeighborTerms(s, newAccountStep(), sql.OrderByField(field, opts...))
|
|
}
|
|
}
|
|
|
|
// ByGroupField orders the results by group field.
|
|
func ByGroupField(field string, opts ...sql.OrderTermOption) OrderOption {
|
|
return func(s *sql.Selector) {
|
|
sqlgraph.OrderByNeighborTerms(s, newGroupStep(), sql.OrderByField(field, opts...))
|
|
}
|
|
}
|
|
|
|
// BySubscriptionField orders the results by subscription field.
|
|
func BySubscriptionField(field string, opts ...sql.OrderTermOption) OrderOption {
|
|
return func(s *sql.Selector) {
|
|
sqlgraph.OrderByNeighborTerms(s, newSubscriptionStep(), sql.OrderByField(field, opts...))
|
|
}
|
|
}
|
|
func newUserStep() *sqlgraph.Step {
|
|
return sqlgraph.NewStep(
|
|
sqlgraph.From(Table, FieldID),
|
|
sqlgraph.To(UserInverseTable, FieldID),
|
|
sqlgraph.Edge(sqlgraph.M2O, true, UserTable, UserColumn),
|
|
)
|
|
}
|
|
func newAPIKeyStep() *sqlgraph.Step {
|
|
return sqlgraph.NewStep(
|
|
sqlgraph.From(Table, FieldID),
|
|
sqlgraph.To(APIKeyInverseTable, FieldID),
|
|
sqlgraph.Edge(sqlgraph.M2O, true, APIKeyTable, APIKeyColumn),
|
|
)
|
|
}
|
|
func newAccountStep() *sqlgraph.Step {
|
|
return sqlgraph.NewStep(
|
|
sqlgraph.From(Table, FieldID),
|
|
sqlgraph.To(AccountInverseTable, FieldID),
|
|
sqlgraph.Edge(sqlgraph.M2O, true, AccountTable, AccountColumn),
|
|
)
|
|
}
|
|
func newGroupStep() *sqlgraph.Step {
|
|
return sqlgraph.NewStep(
|
|
sqlgraph.From(Table, FieldID),
|
|
sqlgraph.To(GroupInverseTable, FieldID),
|
|
sqlgraph.Edge(sqlgraph.M2O, true, GroupTable, GroupColumn),
|
|
)
|
|
}
|
|
func newSubscriptionStep() *sqlgraph.Step {
|
|
return sqlgraph.NewStep(
|
|
sqlgraph.From(Table, FieldID),
|
|
sqlgraph.To(SubscriptionInverseTable, FieldID),
|
|
sqlgraph.Edge(sqlgraph.M2O, true, SubscriptionTable, SubscriptionColumn),
|
|
)
|
|
}
|