mirror of
https://github.com/EZ-Api/ez-api.git
synced 2026-01-13 17:47:51 +00:00
feat(provider): add google project and location fields
Add support for Google Cloud-specific configuration in provider models. New fields `GoogleProject` and `GoogleLocation` are now included in the Provider DTO, database model, API handlers, and sync service snapshots. - Extend Provider struct in model with gorm/json tags - Update ProviderDTO with omitempty JSON tags - Include fields in handler create/update logic with trim - Add fields to providerSnapshot for sync operations
This commit is contained in:
@@ -66,16 +66,18 @@ func (s *SyncService) SyncProvider(provider *model.Provider) error {
|
||||
models := strings.Split(provider.Models, ",")
|
||||
|
||||
snap := providerSnapshot{
|
||||
ID: provider.ID,
|
||||
Name: provider.Name,
|
||||
Type: provider.Type,
|
||||
BaseURL: provider.BaseURL,
|
||||
APIKey: provider.APIKey,
|
||||
Group: group,
|
||||
Models: models,
|
||||
Status: normalizeStatus(provider.Status),
|
||||
AutoBan: provider.AutoBan,
|
||||
BanReason: provider.BanReason,
|
||||
ID: provider.ID,
|
||||
Name: provider.Name,
|
||||
Type: provider.Type,
|
||||
BaseURL: provider.BaseURL,
|
||||
APIKey: provider.APIKey,
|
||||
GoogleProject: provider.GoogleProject,
|
||||
GoogleLocation: provider.GoogleLocation,
|
||||
Group: group,
|
||||
Models: models,
|
||||
Status: normalizeStatus(provider.Status),
|
||||
AutoBan: provider.AutoBan,
|
||||
BanReason: provider.BanReason,
|
||||
}
|
||||
if provider.BanUntil != nil {
|
||||
snap.BanUntil = provider.BanUntil.UTC().Unix()
|
||||
@@ -124,17 +126,19 @@ func (s *SyncService) SyncModel(m *model.Model) error {
|
||||
}
|
||||
|
||||
type providerSnapshot struct {
|
||||
ID uint `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Type string `json:"type"`
|
||||
BaseURL string `json:"base_url"`
|
||||
APIKey string `json:"api_key"`
|
||||
Group string `json:"group"`
|
||||
Models []string `json:"models"`
|
||||
Status string `json:"status"`
|
||||
AutoBan bool `json:"auto_ban"`
|
||||
BanReason string `json:"ban_reason,omitempty"`
|
||||
BanUntil int64 `json:"ban_until,omitempty"` // unix seconds
|
||||
ID uint `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Type string `json:"type"`
|
||||
BaseURL string `json:"base_url"`
|
||||
APIKey string `json:"api_key"`
|
||||
GoogleProject string `json:"google_project,omitempty"`
|
||||
GoogleLocation string `json:"google_location,omitempty"`
|
||||
Group string `json:"group"`
|
||||
Models []string `json:"models"`
|
||||
Status string `json:"status"`
|
||||
AutoBan bool `json:"auto_ban"`
|
||||
BanReason string `json:"ban_reason,omitempty"`
|
||||
BanUntil int64 `json:"ban_until,omitempty"` // unix seconds
|
||||
}
|
||||
|
||||
// keySnapshot is no longer needed as we write directly to auth:token:*
|
||||
@@ -198,16 +202,18 @@ func (s *SyncService) SyncAll(db *gorm.DB) error {
|
||||
models := strings.Split(p.Models, ",")
|
||||
|
||||
snap := providerSnapshot{
|
||||
ID: p.ID,
|
||||
Name: p.Name,
|
||||
Type: p.Type,
|
||||
BaseURL: p.BaseURL,
|
||||
APIKey: p.APIKey,
|
||||
Group: group,
|
||||
Models: models,
|
||||
Status: normalizeStatus(p.Status),
|
||||
AutoBan: p.AutoBan,
|
||||
BanReason: p.BanReason,
|
||||
ID: p.ID,
|
||||
Name: p.Name,
|
||||
Type: p.Type,
|
||||
BaseURL: p.BaseURL,
|
||||
APIKey: p.APIKey,
|
||||
GoogleProject: p.GoogleProject,
|
||||
GoogleLocation: p.GoogleLocation,
|
||||
Group: group,
|
||||
Models: models,
|
||||
Status: normalizeStatus(p.Status),
|
||||
AutoBan: p.AutoBan,
|
||||
BanReason: p.BanReason,
|
||||
}
|
||||
if p.BanUntil != nil {
|
||||
snap.BanUntil = p.BanUntil.UTC().Unix()
|
||||
|
||||
Reference in New Issue
Block a user