mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-27 07:16:19 +09:00
feat(tts): introduce TTS system (#195)
This commit is contained in:
@@ -590,7 +590,7 @@ WITH updated AS (
|
||||
SET display_name = $1,
|
||||
updated_at = now()
|
||||
WHERE bots.id = $2
|
||||
RETURNING id, owner_user_id, type, display_name, avatar_url, is_active, status, max_context_load_time, max_context_tokens, language, allow_guest, reasoning_enabled, reasoning_effort, max_inbox_items, chat_model_id, search_provider_id, memory_provider_id, heartbeat_enabled, heartbeat_interval, heartbeat_prompt, heartbeat_model_id, browser_context_id, metadata, created_at, updated_at
|
||||
RETURNING id, owner_user_id, type, display_name, avatar_url, is_active, status, max_context_load_time, max_context_tokens, language, allow_guest, reasoning_enabled, reasoning_effort, max_inbox_items, chat_model_id, search_provider_id, memory_provider_id, heartbeat_enabled, heartbeat_interval, heartbeat_prompt, heartbeat_model_id, tts_model_id, browser_context_id, metadata, created_at, updated_at
|
||||
)
|
||||
SELECT
|
||||
updated.id AS id,
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
// Hand-written sqlc-style queries for email_oauth_tokens.
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.30.0
|
||||
// source: email_oauth_tokens.sql
|
||||
|
||||
package sqlc
|
||||
|
||||
@@ -8,64 +11,22 @@ import (
|
||||
"github.com/jackc/pgx/v5/pgtype"
|
||||
)
|
||||
|
||||
const upsertEmailOAuthToken = `-- name: UpsertEmailOAuthToken :one
|
||||
INSERT INTO email_oauth_tokens (email_provider_id, email_address, access_token, refresh_token, expires_at, scope, state)
|
||||
VALUES ($1, $2, $3, $4, $5, $6, $7)
|
||||
ON CONFLICT (email_provider_id) DO UPDATE SET
|
||||
email_address = EXCLUDED.email_address,
|
||||
access_token = EXCLUDED.access_token,
|
||||
refresh_token = EXCLUDED.refresh_token,
|
||||
expires_at = EXCLUDED.expires_at,
|
||||
scope = EXCLUDED.scope,
|
||||
state = EXCLUDED.state,
|
||||
updated_at = now()
|
||||
RETURNING id, email_provider_id, email_address, access_token, refresh_token, expires_at, scope, state, created_at, updated_at
|
||||
const deleteEmailOAuthToken = `-- name: DeleteEmailOAuthToken :exec
|
||||
DELETE FROM email_oauth_tokens WHERE email_provider_id = $1
|
||||
`
|
||||
|
||||
type UpsertEmailOAuthTokenParams struct {
|
||||
EmailProviderID pgtype.UUID `json:"email_provider_id"`
|
||||
EmailAddress string `json:"email_address"`
|
||||
AccessToken string `json:"access_token"`
|
||||
RefreshToken string `json:"refresh_token"`
|
||||
ExpiresAt pgtype.Timestamptz `json:"expires_at"`
|
||||
Scope string `json:"scope"`
|
||||
State string `json:"state"`
|
||||
}
|
||||
|
||||
func (q *Queries) UpsertEmailOAuthToken(ctx context.Context, arg UpsertEmailOAuthTokenParams) (EmailOAuthToken, error) {
|
||||
row := q.db.QueryRow(ctx, upsertEmailOAuthToken,
|
||||
arg.EmailProviderID,
|
||||
arg.EmailAddress,
|
||||
arg.AccessToken,
|
||||
arg.RefreshToken,
|
||||
arg.ExpiresAt,
|
||||
arg.Scope,
|
||||
arg.State,
|
||||
)
|
||||
var i EmailOAuthToken
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.EmailProviderID,
|
||||
&i.EmailAddress,
|
||||
&i.AccessToken,
|
||||
&i.RefreshToken,
|
||||
&i.ExpiresAt,
|
||||
&i.Scope,
|
||||
&i.State,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
)
|
||||
return i, err
|
||||
func (q *Queries) DeleteEmailOAuthToken(ctx context.Context, emailProviderID pgtype.UUID) error {
|
||||
_, err := q.db.Exec(ctx, deleteEmailOAuthToken, emailProviderID)
|
||||
return err
|
||||
}
|
||||
|
||||
const getEmailOAuthTokenByProvider = `-- name: GetEmailOAuthTokenByProvider :one
|
||||
SELECT id, email_provider_id, email_address, access_token, refresh_token, expires_at, scope, state, created_at, updated_at
|
||||
FROM email_oauth_tokens WHERE email_provider_id = $1
|
||||
SELECT id, email_provider_id, email_address, access_token, refresh_token, expires_at, scope, state, created_at, updated_at FROM email_oauth_tokens WHERE email_provider_id = $1
|
||||
`
|
||||
|
||||
func (q *Queries) GetEmailOAuthTokenByProvider(ctx context.Context, providerID pgtype.UUID) (EmailOAuthToken, error) {
|
||||
row := q.db.QueryRow(ctx, getEmailOAuthTokenByProvider, providerID)
|
||||
var i EmailOAuthToken
|
||||
func (q *Queries) GetEmailOAuthTokenByProvider(ctx context.Context, emailProviderID pgtype.UUID) (EmailOauthToken, error) {
|
||||
row := q.db.QueryRow(ctx, getEmailOAuthTokenByProvider, emailProviderID)
|
||||
var i EmailOauthToken
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.EmailProviderID,
|
||||
@@ -82,13 +43,12 @@ func (q *Queries) GetEmailOAuthTokenByProvider(ctx context.Context, providerID p
|
||||
}
|
||||
|
||||
const getEmailOAuthTokenByState = `-- name: GetEmailOAuthTokenByState :one
|
||||
SELECT id, email_provider_id, email_address, access_token, refresh_token, expires_at, scope, state, created_at, updated_at
|
||||
FROM email_oauth_tokens WHERE state = $1 AND state != ''
|
||||
SELECT id, email_provider_id, email_address, access_token, refresh_token, expires_at, scope, state, created_at, updated_at FROM email_oauth_tokens WHERE state = $1 AND state != ''
|
||||
`
|
||||
|
||||
func (q *Queries) GetEmailOAuthTokenByState(ctx context.Context, state string) (EmailOAuthToken, error) {
|
||||
func (q *Queries) GetEmailOAuthTokenByState(ctx context.Context, state string) (EmailOauthToken, error) {
|
||||
row := q.db.QueryRow(ctx, getEmailOAuthTokenByState, state)
|
||||
var i EmailOAuthToken
|
||||
var i EmailOauthToken
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.EmailProviderID,
|
||||
@@ -122,11 +82,52 @@ func (q *Queries) UpdateEmailOAuthState(ctx context.Context, arg UpdateEmailOAut
|
||||
return err
|
||||
}
|
||||
|
||||
const deleteEmailOAuthToken = `-- name: DeleteEmailOAuthToken :exec
|
||||
DELETE FROM email_oauth_tokens WHERE email_provider_id = $1
|
||||
const upsertEmailOAuthToken = `-- name: UpsertEmailOAuthToken :one
|
||||
INSERT INTO email_oauth_tokens (email_provider_id, email_address, access_token, refresh_token, expires_at, scope, state)
|
||||
VALUES ($1, $2, $3, $4, $5, $6, $7)
|
||||
ON CONFLICT (email_provider_id) DO UPDATE SET
|
||||
email_address = EXCLUDED.email_address,
|
||||
access_token = EXCLUDED.access_token,
|
||||
refresh_token = EXCLUDED.refresh_token,
|
||||
expires_at = EXCLUDED.expires_at,
|
||||
scope = EXCLUDED.scope,
|
||||
state = EXCLUDED.state,
|
||||
updated_at = now()
|
||||
RETURNING id, email_provider_id, email_address, access_token, refresh_token, expires_at, scope, state, created_at, updated_at
|
||||
`
|
||||
|
||||
func (q *Queries) DeleteEmailOAuthToken(ctx context.Context, providerID pgtype.UUID) error {
|
||||
_, err := q.db.Exec(ctx, deleteEmailOAuthToken, providerID)
|
||||
return err
|
||||
type UpsertEmailOAuthTokenParams struct {
|
||||
EmailProviderID pgtype.UUID `json:"email_provider_id"`
|
||||
EmailAddress string `json:"email_address"`
|
||||
AccessToken string `json:"access_token"`
|
||||
RefreshToken string `json:"refresh_token"`
|
||||
ExpiresAt pgtype.Timestamptz `json:"expires_at"`
|
||||
Scope string `json:"scope"`
|
||||
State string `json:"state"`
|
||||
}
|
||||
|
||||
func (q *Queries) UpsertEmailOAuthToken(ctx context.Context, arg UpsertEmailOAuthTokenParams) (EmailOauthToken, error) {
|
||||
row := q.db.QueryRow(ctx, upsertEmailOAuthToken,
|
||||
arg.EmailProviderID,
|
||||
arg.EmailAddress,
|
||||
arg.AccessToken,
|
||||
arg.RefreshToken,
|
||||
arg.ExpiresAt,
|
||||
arg.Scope,
|
||||
arg.State,
|
||||
)
|
||||
var i EmailOauthToken
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.EmailProviderID,
|
||||
&i.EmailAddress,
|
||||
&i.AccessToken,
|
||||
&i.RefreshToken,
|
||||
&i.ExpiresAt,
|
||||
&i.Scope,
|
||||
&i.State,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
+33
-13
@@ -30,6 +30,7 @@ type Bot struct {
|
||||
HeartbeatInterval int32 `json:"heartbeat_interval"`
|
||||
HeartbeatPrompt string `json:"heartbeat_prompt"`
|
||||
HeartbeatModelID pgtype.UUID `json:"heartbeat_model_id"`
|
||||
TtsModelID pgtype.UUID `json:"tts_model_id"`
|
||||
BrowserContextID pgtype.UUID `json:"browser_context_id"`
|
||||
Metadata []byte `json:"metadata"`
|
||||
CreatedAt pgtype.Timestamptz `json:"created_at"`
|
||||
@@ -209,6 +210,19 @@ type ContainerVersion struct {
|
||||
CreatedAt pgtype.Timestamptz `json:"created_at"`
|
||||
}
|
||||
|
||||
type EmailOauthToken struct {
|
||||
ID pgtype.UUID `json:"id"`
|
||||
EmailProviderID pgtype.UUID `json:"email_provider_id"`
|
||||
EmailAddress string `json:"email_address"`
|
||||
AccessToken string `json:"access_token"`
|
||||
RefreshToken string `json:"refresh_token"`
|
||||
ExpiresAt pgtype.Timestamptz `json:"expires_at"`
|
||||
Scope string `json:"scope"`
|
||||
State string `json:"state"`
|
||||
CreatedAt pgtype.Timestamptz `json:"created_at"`
|
||||
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
|
||||
}
|
||||
|
||||
type EmailOutbox struct {
|
||||
ID pgtype.UUID `json:"id"`
|
||||
ProviderID pgtype.UUID `json:"provider_id"`
|
||||
@@ -235,19 +249,6 @@ type EmailProvider struct {
|
||||
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
|
||||
}
|
||||
|
||||
type EmailOAuthToken struct {
|
||||
ID pgtype.UUID `json:"id"`
|
||||
EmailProviderID pgtype.UUID `json:"email_provider_id"`
|
||||
EmailAddress string `json:"email_address"`
|
||||
AccessToken string `json:"access_token"`
|
||||
RefreshToken string `json:"refresh_token"`
|
||||
ExpiresAt pgtype.Timestamptz `json:"expires_at"`
|
||||
Scope string `json:"scope"`
|
||||
State string `json:"state"`
|
||||
CreatedAt pgtype.Timestamptz `json:"created_at"`
|
||||
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
|
||||
}
|
||||
|
||||
type LifecycleEvent struct {
|
||||
ID string `json:"id"`
|
||||
ContainerID string `json:"container_id"`
|
||||
@@ -415,6 +416,25 @@ type Subagent struct {
|
||||
Usage []byte `json:"usage"`
|
||||
}
|
||||
|
||||
type TtsModel struct {
|
||||
ID pgtype.UUID `json:"id"`
|
||||
ModelID string `json:"model_id"`
|
||||
Name pgtype.Text `json:"name"`
|
||||
TtsProviderID pgtype.UUID `json:"tts_provider_id"`
|
||||
Config []byte `json:"config"`
|
||||
CreatedAt pgtype.Timestamptz `json:"created_at"`
|
||||
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
|
||||
}
|
||||
|
||||
type TtsProvider struct {
|
||||
ID pgtype.UUID `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Provider string `json:"provider"`
|
||||
Config []byte `json:"config"`
|
||||
CreatedAt pgtype.Timestamptz `json:"created_at"`
|
||||
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
|
||||
}
|
||||
|
||||
type User struct {
|
||||
ID pgtype.UUID `json:"id"`
|
||||
Username pgtype.Text `json:"username"`
|
||||
|
||||
@@ -27,6 +27,7 @@ SET max_context_load_time = 1440,
|
||||
heartbeat_model_id = NULL,
|
||||
search_provider_id = NULL,
|
||||
memory_provider_id = NULL,
|
||||
tts_model_id = NULL,
|
||||
browser_context_id = NULL,
|
||||
updated_at = now()
|
||||
WHERE id = $1
|
||||
@@ -54,12 +55,14 @@ SELECT
|
||||
heartbeat_models.id AS heartbeat_model_id,
|
||||
search_providers.id AS search_provider_id,
|
||||
memory_providers.id AS memory_provider_id,
|
||||
tts_models.id AS tts_model_id,
|
||||
browser_contexts.id AS browser_context_id
|
||||
FROM bots
|
||||
LEFT JOIN models AS chat_models ON chat_models.id = bots.chat_model_id
|
||||
LEFT JOIN models AS heartbeat_models ON heartbeat_models.id = bots.heartbeat_model_id
|
||||
LEFT JOIN search_providers ON search_providers.id = bots.search_provider_id
|
||||
LEFT JOIN memory_providers ON memory_providers.id = bots.memory_provider_id
|
||||
LEFT JOIN tts_models ON tts_models.id = bots.tts_model_id
|
||||
LEFT JOIN browser_contexts ON browser_contexts.id = bots.browser_context_id
|
||||
WHERE bots.id = $1
|
||||
`
|
||||
@@ -80,6 +83,7 @@ type GetSettingsByBotIDRow struct {
|
||||
HeartbeatModelID pgtype.UUID `json:"heartbeat_model_id"`
|
||||
SearchProviderID pgtype.UUID `json:"search_provider_id"`
|
||||
MemoryProviderID pgtype.UUID `json:"memory_provider_id"`
|
||||
TtsModelID pgtype.UUID `json:"tts_model_id"`
|
||||
BrowserContextID pgtype.UUID `json:"browser_context_id"`
|
||||
}
|
||||
|
||||
@@ -102,6 +106,7 @@ func (q *Queries) GetSettingsByBotID(ctx context.Context, id pgtype.UUID) (GetSe
|
||||
&i.HeartbeatModelID,
|
||||
&i.SearchProviderID,
|
||||
&i.MemoryProviderID,
|
||||
&i.TtsModelID,
|
||||
&i.BrowserContextID,
|
||||
)
|
||||
return i, err
|
||||
@@ -124,10 +129,11 @@ WITH updated AS (
|
||||
heartbeat_model_id = COALESCE($12::uuid, bots.heartbeat_model_id),
|
||||
search_provider_id = COALESCE($13::uuid, bots.search_provider_id),
|
||||
memory_provider_id = COALESCE($14::uuid, bots.memory_provider_id),
|
||||
browser_context_id = COALESCE($15::uuid, bots.browser_context_id),
|
||||
tts_model_id = COALESCE($15::uuid, bots.tts_model_id),
|
||||
browser_context_id = COALESCE($16::uuid, bots.browser_context_id),
|
||||
updated_at = now()
|
||||
WHERE bots.id = $16
|
||||
RETURNING bots.id, bots.max_context_load_time, bots.max_context_tokens, bots.max_inbox_items, bots.language, bots.allow_guest, bots.reasoning_enabled, bots.reasoning_effort, bots.heartbeat_enabled, bots.heartbeat_interval, bots.heartbeat_prompt, bots.chat_model_id, bots.heartbeat_model_id, bots.search_provider_id, bots.memory_provider_id, bots.browser_context_id
|
||||
WHERE bots.id = $17
|
||||
RETURNING bots.id, bots.max_context_load_time, bots.max_context_tokens, bots.max_inbox_items, bots.language, bots.allow_guest, bots.reasoning_enabled, bots.reasoning_effort, bots.heartbeat_enabled, bots.heartbeat_interval, bots.heartbeat_prompt, bots.chat_model_id, bots.heartbeat_model_id, bots.search_provider_id, bots.memory_provider_id, bots.tts_model_id, bots.browser_context_id
|
||||
)
|
||||
SELECT
|
||||
updated.id AS bot_id,
|
||||
@@ -145,12 +151,14 @@ SELECT
|
||||
heartbeat_models.id AS heartbeat_model_id,
|
||||
search_providers.id AS search_provider_id,
|
||||
memory_providers.id AS memory_provider_id,
|
||||
tts_models.id AS tts_model_id,
|
||||
browser_contexts.id AS browser_context_id
|
||||
FROM updated
|
||||
LEFT JOIN models AS chat_models ON chat_models.id = updated.chat_model_id
|
||||
LEFT JOIN models AS heartbeat_models ON heartbeat_models.id = updated.heartbeat_model_id
|
||||
LEFT JOIN search_providers ON search_providers.id = updated.search_provider_id
|
||||
LEFT JOIN memory_providers ON memory_providers.id = updated.memory_provider_id
|
||||
LEFT JOIN tts_models ON tts_models.id = updated.tts_model_id
|
||||
LEFT JOIN browser_contexts ON browser_contexts.id = updated.browser_context_id
|
||||
`
|
||||
|
||||
@@ -169,6 +177,7 @@ type UpsertBotSettingsParams struct {
|
||||
HeartbeatModelID pgtype.UUID `json:"heartbeat_model_id"`
|
||||
SearchProviderID pgtype.UUID `json:"search_provider_id"`
|
||||
MemoryProviderID pgtype.UUID `json:"memory_provider_id"`
|
||||
TtsModelID pgtype.UUID `json:"tts_model_id"`
|
||||
BrowserContextID pgtype.UUID `json:"browser_context_id"`
|
||||
ID pgtype.UUID `json:"id"`
|
||||
}
|
||||
@@ -189,6 +198,7 @@ type UpsertBotSettingsRow struct {
|
||||
HeartbeatModelID pgtype.UUID `json:"heartbeat_model_id"`
|
||||
SearchProviderID pgtype.UUID `json:"search_provider_id"`
|
||||
MemoryProviderID pgtype.UUID `json:"memory_provider_id"`
|
||||
TtsModelID pgtype.UUID `json:"tts_model_id"`
|
||||
BrowserContextID pgtype.UUID `json:"browser_context_id"`
|
||||
}
|
||||
|
||||
@@ -208,6 +218,7 @@ func (q *Queries) UpsertBotSettings(ctx context.Context, arg UpsertBotSettingsPa
|
||||
arg.HeartbeatModelID,
|
||||
arg.SearchProviderID,
|
||||
arg.MemoryProviderID,
|
||||
arg.TtsModelID,
|
||||
arg.BrowserContextID,
|
||||
arg.ID,
|
||||
)
|
||||
@@ -228,6 +239,7 @@ func (q *Queries) UpsertBotSettings(ctx context.Context, arg UpsertBotSettingsPa
|
||||
&i.HeartbeatModelID,
|
||||
&i.SearchProviderID,
|
||||
&i.MemoryProviderID,
|
||||
&i.TtsModelID,
|
||||
&i.BrowserContextID,
|
||||
)
|
||||
return i, err
|
||||
|
||||
@@ -0,0 +1,248 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.30.0
|
||||
// source: tts_models.sql
|
||||
|
||||
package sqlc
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/jackc/pgx/v5/pgtype"
|
||||
)
|
||||
|
||||
const createTtsModel = `-- name: CreateTtsModel :one
|
||||
INSERT INTO tts_models (model_id, name, tts_provider_id, config)
|
||||
VALUES (
|
||||
$1,
|
||||
$2,
|
||||
$3,
|
||||
$4
|
||||
)
|
||||
RETURNING id, model_id, name, tts_provider_id, config, created_at, updated_at
|
||||
`
|
||||
|
||||
type CreateTtsModelParams struct {
|
||||
ModelID string `json:"model_id"`
|
||||
Name pgtype.Text `json:"name"`
|
||||
TtsProviderID pgtype.UUID `json:"tts_provider_id"`
|
||||
Config []byte `json:"config"`
|
||||
}
|
||||
|
||||
func (q *Queries) CreateTtsModel(ctx context.Context, arg CreateTtsModelParams) (TtsModel, error) {
|
||||
row := q.db.QueryRow(ctx, createTtsModel,
|
||||
arg.ModelID,
|
||||
arg.Name,
|
||||
arg.TtsProviderID,
|
||||
arg.Config,
|
||||
)
|
||||
var i TtsModel
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.ModelID,
|
||||
&i.Name,
|
||||
&i.TtsProviderID,
|
||||
&i.Config,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const deleteTtsModel = `-- name: DeleteTtsModel :exec
|
||||
DELETE FROM tts_models WHERE id = $1
|
||||
`
|
||||
|
||||
func (q *Queries) DeleteTtsModel(ctx context.Context, id pgtype.UUID) error {
|
||||
_, err := q.db.Exec(ctx, deleteTtsModel, id)
|
||||
return err
|
||||
}
|
||||
|
||||
const deleteTtsModelsByProviderID = `-- name: DeleteTtsModelsByProviderID :exec
|
||||
DELETE FROM tts_models WHERE tts_provider_id = $1
|
||||
`
|
||||
|
||||
func (q *Queries) DeleteTtsModelsByProviderID(ctx context.Context, ttsProviderID pgtype.UUID) error {
|
||||
_, err := q.db.Exec(ctx, deleteTtsModelsByProviderID, ttsProviderID)
|
||||
return err
|
||||
}
|
||||
|
||||
const getTtsModelByID = `-- name: GetTtsModelByID :one
|
||||
SELECT id, model_id, name, tts_provider_id, config, created_at, updated_at FROM tts_models WHERE id = $1
|
||||
`
|
||||
|
||||
func (q *Queries) GetTtsModelByID(ctx context.Context, id pgtype.UUID) (TtsModel, error) {
|
||||
row := q.db.QueryRow(ctx, getTtsModelByID, id)
|
||||
var i TtsModel
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.ModelID,
|
||||
&i.Name,
|
||||
&i.TtsProviderID,
|
||||
&i.Config,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const getTtsModelByProviderAndModelID = `-- name: GetTtsModelByProviderAndModelID :one
|
||||
SELECT id, model_id, name, tts_provider_id, config, created_at, updated_at FROM tts_models
|
||||
WHERE tts_provider_id = $1
|
||||
AND model_id = $2
|
||||
LIMIT 1
|
||||
`
|
||||
|
||||
type GetTtsModelByProviderAndModelIDParams struct {
|
||||
TtsProviderID pgtype.UUID `json:"tts_provider_id"`
|
||||
ModelID string `json:"model_id"`
|
||||
}
|
||||
|
||||
func (q *Queries) GetTtsModelByProviderAndModelID(ctx context.Context, arg GetTtsModelByProviderAndModelIDParams) (TtsModel, error) {
|
||||
row := q.db.QueryRow(ctx, getTtsModelByProviderAndModelID, arg.TtsProviderID, arg.ModelID)
|
||||
var i TtsModel
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.ModelID,
|
||||
&i.Name,
|
||||
&i.TtsProviderID,
|
||||
&i.Config,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const getTtsModelWithProvider = `-- name: GetTtsModelWithProvider :one
|
||||
SELECT
|
||||
tm.id, tm.model_id, tm.name, tm.tts_provider_id, tm.config, tm.created_at, tm.updated_at,
|
||||
tp.provider AS provider_type
|
||||
FROM tts_models tm
|
||||
JOIN tts_providers tp ON tp.id = tm.tts_provider_id
|
||||
WHERE tm.id = $1
|
||||
`
|
||||
|
||||
type GetTtsModelWithProviderRow struct {
|
||||
ID pgtype.UUID `json:"id"`
|
||||
ModelID string `json:"model_id"`
|
||||
Name pgtype.Text `json:"name"`
|
||||
TtsProviderID pgtype.UUID `json:"tts_provider_id"`
|
||||
Config []byte `json:"config"`
|
||||
CreatedAt pgtype.Timestamptz `json:"created_at"`
|
||||
UpdatedAt pgtype.Timestamptz `json:"updated_at"`
|
||||
ProviderType string `json:"provider_type"`
|
||||
}
|
||||
|
||||
func (q *Queries) GetTtsModelWithProvider(ctx context.Context, id pgtype.UUID) (GetTtsModelWithProviderRow, error) {
|
||||
row := q.db.QueryRow(ctx, getTtsModelWithProvider, id)
|
||||
var i GetTtsModelWithProviderRow
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.ModelID,
|
||||
&i.Name,
|
||||
&i.TtsProviderID,
|
||||
&i.Config,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
&i.ProviderType,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const listTtsModels = `-- name: ListTtsModels :many
|
||||
SELECT id, model_id, name, tts_provider_id, config, created_at, updated_at FROM tts_models
|
||||
ORDER BY created_at DESC
|
||||
`
|
||||
|
||||
func (q *Queries) ListTtsModels(ctx context.Context) ([]TtsModel, error) {
|
||||
rows, err := q.db.Query(ctx, listTtsModels)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []TtsModel
|
||||
for rows.Next() {
|
||||
var i TtsModel
|
||||
if err := rows.Scan(
|
||||
&i.ID,
|
||||
&i.ModelID,
|
||||
&i.Name,
|
||||
&i.TtsProviderID,
|
||||
&i.Config,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const listTtsModelsByProviderID = `-- name: ListTtsModelsByProviderID :many
|
||||
SELECT id, model_id, name, tts_provider_id, config, created_at, updated_at FROM tts_models
|
||||
WHERE tts_provider_id = $1
|
||||
ORDER BY created_at DESC
|
||||
`
|
||||
|
||||
func (q *Queries) ListTtsModelsByProviderID(ctx context.Context, ttsProviderID pgtype.UUID) ([]TtsModel, error) {
|
||||
rows, err := q.db.Query(ctx, listTtsModelsByProviderID, ttsProviderID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []TtsModel
|
||||
for rows.Next() {
|
||||
var i TtsModel
|
||||
if err := rows.Scan(
|
||||
&i.ID,
|
||||
&i.ModelID,
|
||||
&i.Name,
|
||||
&i.TtsProviderID,
|
||||
&i.Config,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const updateTtsModel = `-- name: UpdateTtsModel :one
|
||||
UPDATE tts_models
|
||||
SET
|
||||
name = $1,
|
||||
config = $2,
|
||||
updated_at = now()
|
||||
WHERE id = $3
|
||||
RETURNING id, model_id, name, tts_provider_id, config, created_at, updated_at
|
||||
`
|
||||
|
||||
type UpdateTtsModelParams struct {
|
||||
Name pgtype.Text `json:"name"`
|
||||
Config []byte `json:"config"`
|
||||
ID pgtype.UUID `json:"id"`
|
||||
}
|
||||
|
||||
func (q *Queries) UpdateTtsModel(ctx context.Context, arg UpdateTtsModelParams) (TtsModel, error) {
|
||||
row := q.db.QueryRow(ctx, updateTtsModel, arg.Name, arg.Config, arg.ID)
|
||||
var i TtsModel
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.ModelID,
|
||||
&i.Name,
|
||||
&i.TtsProviderID,
|
||||
&i.Config,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
@@ -0,0 +1,189 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.30.0
|
||||
// source: tts_providers.sql
|
||||
|
||||
package sqlc
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/jackc/pgx/v5/pgtype"
|
||||
)
|
||||
|
||||
const createTtsProvider = `-- name: CreateTtsProvider :one
|
||||
INSERT INTO tts_providers (name, provider, config)
|
||||
VALUES (
|
||||
$1,
|
||||
$2,
|
||||
$3
|
||||
)
|
||||
RETURNING id, name, provider, config, created_at, updated_at
|
||||
`
|
||||
|
||||
type CreateTtsProviderParams struct {
|
||||
Name string `json:"name"`
|
||||
Provider string `json:"provider"`
|
||||
Config []byte `json:"config"`
|
||||
}
|
||||
|
||||
func (q *Queries) CreateTtsProvider(ctx context.Context, arg CreateTtsProviderParams) (TtsProvider, error) {
|
||||
row := q.db.QueryRow(ctx, createTtsProvider, arg.Name, arg.Provider, arg.Config)
|
||||
var i TtsProvider
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.Name,
|
||||
&i.Provider,
|
||||
&i.Config,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const deleteTtsProvider = `-- name: DeleteTtsProvider :exec
|
||||
DELETE FROM tts_providers WHERE id = $1
|
||||
`
|
||||
|
||||
func (q *Queries) DeleteTtsProvider(ctx context.Context, id pgtype.UUID) error {
|
||||
_, err := q.db.Exec(ctx, deleteTtsProvider, id)
|
||||
return err
|
||||
}
|
||||
|
||||
const getTtsProviderByID = `-- name: GetTtsProviderByID :one
|
||||
SELECT id, name, provider, config, created_at, updated_at FROM tts_providers WHERE id = $1
|
||||
`
|
||||
|
||||
func (q *Queries) GetTtsProviderByID(ctx context.Context, id pgtype.UUID) (TtsProvider, error) {
|
||||
row := q.db.QueryRow(ctx, getTtsProviderByID, id)
|
||||
var i TtsProvider
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.Name,
|
||||
&i.Provider,
|
||||
&i.Config,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const getTtsProviderByName = `-- name: GetTtsProviderByName :one
|
||||
SELECT id, name, provider, config, created_at, updated_at FROM tts_providers WHERE name = $1
|
||||
`
|
||||
|
||||
func (q *Queries) GetTtsProviderByName(ctx context.Context, name string) (TtsProvider, error) {
|
||||
row := q.db.QueryRow(ctx, getTtsProviderByName, name)
|
||||
var i TtsProvider
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.Name,
|
||||
&i.Provider,
|
||||
&i.Config,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const listTtsProviders = `-- name: ListTtsProviders :many
|
||||
SELECT id, name, provider, config, created_at, updated_at FROM tts_providers
|
||||
ORDER BY created_at DESC
|
||||
`
|
||||
|
||||
func (q *Queries) ListTtsProviders(ctx context.Context) ([]TtsProvider, error) {
|
||||
rows, err := q.db.Query(ctx, listTtsProviders)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []TtsProvider
|
||||
for rows.Next() {
|
||||
var i TtsProvider
|
||||
if err := rows.Scan(
|
||||
&i.ID,
|
||||
&i.Name,
|
||||
&i.Provider,
|
||||
&i.Config,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const listTtsProvidersByProvider = `-- name: ListTtsProvidersByProvider :many
|
||||
SELECT id, name, provider, config, created_at, updated_at FROM tts_providers
|
||||
WHERE provider = $1
|
||||
ORDER BY created_at DESC
|
||||
`
|
||||
|
||||
func (q *Queries) ListTtsProvidersByProvider(ctx context.Context, provider string) ([]TtsProvider, error) {
|
||||
rows, err := q.db.Query(ctx, listTtsProvidersByProvider, provider)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []TtsProvider
|
||||
for rows.Next() {
|
||||
var i TtsProvider
|
||||
if err := rows.Scan(
|
||||
&i.ID,
|
||||
&i.Name,
|
||||
&i.Provider,
|
||||
&i.Config,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const updateTtsProvider = `-- name: UpdateTtsProvider :one
|
||||
UPDATE tts_providers
|
||||
SET
|
||||
name = $1,
|
||||
provider = $2,
|
||||
config = $3,
|
||||
updated_at = now()
|
||||
WHERE id = $4
|
||||
RETURNING id, name, provider, config, created_at, updated_at
|
||||
`
|
||||
|
||||
type UpdateTtsProviderParams struct {
|
||||
Name string `json:"name"`
|
||||
Provider string `json:"provider"`
|
||||
Config []byte `json:"config"`
|
||||
ID pgtype.UUID `json:"id"`
|
||||
}
|
||||
|
||||
func (q *Queries) UpdateTtsProvider(ctx context.Context, arg UpdateTtsProviderParams) (TtsProvider, error) {
|
||||
row := q.db.QueryRow(ctx, updateTtsProvider,
|
||||
arg.Name,
|
||||
arg.Provider,
|
||||
arg.Config,
|
||||
arg.ID,
|
||||
)
|
||||
var i TtsProvider
|
||||
err := row.Scan(
|
||||
&i.ID,
|
||||
&i.Name,
|
||||
&i.Provider,
|
||||
&i.Config,
|
||||
&i.CreatedAt,
|
||||
&i.UpdatedAt,
|
||||
)
|
||||
return i, err
|
||||
}
|
||||
Reference in New Issue
Block a user