259 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			259 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			Go
		
	
	
	
| /*
 | |
|  * Copyright 2025 coze-dev Authors
 | |
|  *
 | |
|  * Licensed under the Apache License, Version 2.0 (the "License");
 | |
|  * you may not use this file except in compliance with the License.
 | |
|  * You may obtain a copy of the License at
 | |
|  *
 | |
|  *     http://www.apache.org/licenses/LICENSE-2.0
 | |
|  *
 | |
|  * Unless required by applicable law or agreed to in writing, software
 | |
|  * distributed under the License is distributed on an "AS IS" BASIS,
 | |
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
|  * See the License for the specific language governing permissions and
 | |
|  * limitations under the License.
 | |
|  */
 | |
| 
 | |
| package service
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 
 | |
| 	"github.com/coze-dev/coze-studio/backend/api/model/common"
 | |
| 	"github.com/coze-dev/coze-studio/backend/api/model/crossdomain/database"
 | |
| 
 | |
| 	"github.com/coze-dev/coze-studio/backend/api/model/table"
 | |
| 	"github.com/coze-dev/coze-studio/backend/domain/memory/database/entity"
 | |
| )
 | |
| 
 | |
| //go:generate mockgen -destination  ../../../../internal/mock/domain/memory/database/database_mock.go  --package database  -source database.go
 | |
| type Database interface {
 | |
| 	CreateDatabase(ctx context.Context, req *CreateDatabaseRequest) (*CreateDatabaseResponse, error)
 | |
| 	UpdateDatabase(ctx context.Context, req *UpdateDatabaseRequest) (*UpdateDatabaseResponse, error)
 | |
| 	DeleteDatabase(ctx context.Context, req *DeleteDatabaseRequest) error
 | |
| 	MGetDatabase(ctx context.Context, req *MGetDatabaseRequest) (*MGetDatabaseResponse, error)
 | |
| 	ListDatabase(ctx context.Context, req *ListDatabaseRequest) (*ListDatabaseResponse, error)
 | |
| 	GetDraftDatabaseByOnlineID(ctx context.Context, req *GetDraftDatabaseByOnlineIDRequest) (*GetDraftDatabaseByOnlineIDResponse, error)
 | |
| 	DeleteDatabaseByAppID(ctx context.Context, req *DeleteDatabaseByAppIDRequest) (*DeleteDatabaseByAppIDResponse, error)
 | |
| 	GetAllDatabaseByAppID(ctx context.Context, req *GetAllDatabaseByAppIDRequest) (*GetAllDatabaseByAppIDResponse, error)
 | |
| 
 | |
| 	GetDatabaseTemplate(ctx context.Context, req *GetDatabaseTemplateRequest) (*GetDatabaseTemplateResponse, error)
 | |
| 	GetDatabaseTableSchema(ctx context.Context, req *GetDatabaseTableSchemaRequest) (*GetDatabaseTableSchemaResponse, error)
 | |
| 	ValidateDatabaseTableSchema(ctx context.Context, req *ValidateDatabaseTableSchemaRequest) (*ValidateDatabaseTableSchemaResponse, error)
 | |
| 	SubmitDatabaseInsertTask(ctx context.Context, req *SubmitDatabaseInsertTaskRequest) error
 | |
| 	GetDatabaseFileProgressData(ctx context.Context, req *GetDatabaseFileProgressDataRequest) (*GetDatabaseFileProgressDataResponse, error)
 | |
| 
 | |
| 	AddDatabaseRecord(ctx context.Context, req *AddDatabaseRecordRequest) error
 | |
| 	UpdateDatabaseRecord(ctx context.Context, req *UpdateDatabaseRecordRequest) error
 | |
| 	DeleteDatabaseRecord(ctx context.Context, req *DeleteDatabaseRecordRequest) error
 | |
| 	ListDatabaseRecord(ctx context.Context, req *ListDatabaseRecordRequest) (*ListDatabaseRecordResponse, error)
 | |
| 
 | |
| 	ExecuteSQL(ctx context.Context, req *ExecuteSQLRequest) (*ExecuteSQLResponse, error)
 | |
| 
 | |
| 	BindDatabase(ctx context.Context, req *BindDatabaseToAgentRequest) error
 | |
| 	UnBindDatabase(ctx context.Context, req *UnBindDatabaseToAgentRequest) error
 | |
| 	MGetDatabaseByAgentID(ctx context.Context, req *MGetDatabaseByAgentIDRequest) (*MGetDatabaseByAgentIDResponse, error)
 | |
| 	MGetRelationsByAgentID(ctx context.Context, req *MGetRelationsByAgentIDRequest) (*MGetRelationsByAgentIDResponse, error)
 | |
| 
 | |
| 	PublishDatabase(ctx context.Context, req *PublishDatabaseRequest) (*PublishDatabaseResponse, error)
 | |
| }
 | |
| 
 | |
| type CreateDatabaseRequest struct {
 | |
| 	Database *entity.Database
 | |
| }
 | |
| 
 | |
| type CreateDatabaseResponse struct {
 | |
| 	Database *entity.Database
 | |
| }
 | |
| 
 | |
| type UpdateDatabaseRequest struct {
 | |
| 	Database *entity.Database
 | |
| }
 | |
| 
 | |
| type UpdateDatabaseResponse struct {
 | |
| 	Database *entity.Database
 | |
| }
 | |
| 
 | |
| type MGetDatabaseRequest = database.MGetDatabaseRequest
 | |
| type MGetDatabaseResponse = database.MGetDatabaseResponse
 | |
| type GetDatabaseTemplateRequest struct {
 | |
| 	UserID     int64
 | |
| 	TableName  string
 | |
| 	FieldItems []*table.FieldItem
 | |
| }
 | |
| 
 | |
| type GetDatabaseTemplateResponse struct {
 | |
| 	Url string
 | |
| }
 | |
| type ListDatabaseRequest struct {
 | |
| 	CreatorID   *int64
 | |
| 	SpaceID     *int64
 | |
| 	ConnectorID *int64
 | |
| 	TableName   *string
 | |
| 	AppID       int64
 | |
| 	TableType   table.TableType
 | |
| 	OrderBy     []*database.OrderBy
 | |
| 
 | |
| 	Limit  int
 | |
| 	Offset int
 | |
| }
 | |
| 
 | |
| type ListDatabaseResponse struct {
 | |
| 	Databases []*entity.Database
 | |
| 
 | |
| 	HasMore    bool
 | |
| 	TotalCount int64
 | |
| }
 | |
| 
 | |
| type AddDatabaseRecordRequest struct {
 | |
| 	DatabaseID  int64
 | |
| 	TableType   table.TableType
 | |
| 	ConnectorID *int64
 | |
| 	UserID      int64
 | |
| 	Records     []map[string]string
 | |
| }
 | |
| 
 | |
| type UpdateDatabaseRecordRequest struct {
 | |
| 	DatabaseID  int64
 | |
| 	TableType   table.TableType
 | |
| 	ConnectorID *int64
 | |
| 	UserID      int64
 | |
| 	Records     []map[string]string
 | |
| }
 | |
| 
 | |
| type DeleteDatabaseRecordRequest struct {
 | |
| 	DatabaseID  int64
 | |
| 	TableType   table.TableType
 | |
| 	ConnectorID *int64
 | |
| 	UserID      int64
 | |
| 	Records     []map[string]string
 | |
| }
 | |
| 
 | |
| type ListDatabaseRecordRequest struct {
 | |
| 	DatabaseID  int64
 | |
| 	ConnectorID *int64
 | |
| 	TableType   table.TableType
 | |
| 	UserID      int64
 | |
| 
 | |
| 	Limit  int
 | |
| 	Offset int
 | |
| }
 | |
| 
 | |
| type ListDatabaseRecordResponse struct {
 | |
| 	Records   []map[string]string
 | |
| 	FieldList []*database.FieldItem
 | |
| 
 | |
| 	HasMore    bool
 | |
| 	TotalCount int64
 | |
| }
 | |
| 
 | |
| type ExecuteSQLRequest = database.ExecuteSQLRequest
 | |
| 
 | |
| type ExecuteSQLResponse = database.ExecuteSQLResponse
 | |
| 
 | |
| type BindDatabaseToAgentRequest = database.BindDatabaseToAgentRequest
 | |
| 
 | |
| type UnBindDatabaseToAgentRequest = database.UnBindDatabaseToAgentRequest
 | |
| 
 | |
| type MGetDatabaseByAgentIDRequest struct {
 | |
| 	AgentID       int64
 | |
| 	TableType     table.TableType
 | |
| 	NeedSysFields bool
 | |
| }
 | |
| 
 | |
| type MGetDatabaseByAgentIDResponse struct {
 | |
| 	Databases []*entity.Database
 | |
| }
 | |
| 
 | |
| type PublishDatabaseRequest = database.PublishDatabaseRequest
 | |
| 
 | |
| type PublishDatabaseResponse = database.PublishDatabaseResponse
 | |
| 
 | |
| type DeleteDatabaseRequest = database.DeleteDatabaseRequest
 | |
| 
 | |
| type MGetRelationsByAgentIDRequest struct {
 | |
| 	AgentID       int64
 | |
| 	TableType     table.TableType
 | |
| 	NeedSysFields bool
 | |
| }
 | |
| 
 | |
| type MGetRelationsByAgentIDResponse struct {
 | |
| 	Relations []*database.AgentToDatabase
 | |
| }
 | |
| type GetDatabaseTableSchemaRequest struct {
 | |
| 	TableSheet    entity.TableSheet
 | |
| 	TableDataType table.TableDataType
 | |
| 	DatabaseID    int64
 | |
| 	TosURL        string
 | |
| 	UserID        int64
 | |
| }
 | |
| 
 | |
| type GetDatabaseTableSchemaResponse struct {
 | |
| 	SheetList   []*common.DocTableSheet
 | |
| 	TableMeta   []*common.DocTableColumn
 | |
| 	PreviewData []map[int64]string
 | |
| }
 | |
| 
 | |
| type ValidateDatabaseTableSchemaRequest struct {
 | |
| 	TableSheet    entity.TableSheet
 | |
| 	TableDataType table.TableDataType
 | |
| 	DatabaseID    int64
 | |
| 	TosURL        string
 | |
| 	UserID        int64
 | |
| 	Fields        []*database.FieldItem
 | |
| }
 | |
| 
 | |
| type ValidateDatabaseTableSchemaResponse struct {
 | |
| 	Valid      bool
 | |
| 	InvalidMsg *string // if valid is false, it will be set
 | |
| }
 | |
| 
 | |
| func (r *ValidateDatabaseTableSchemaResponse) GetInvalidMsg() string {
 | |
| 	if r.Valid || r.InvalidMsg == nil {
 | |
| 		return ""
 | |
| 	}
 | |
| 
 | |
| 	return *r.InvalidMsg
 | |
| }
 | |
| 
 | |
| type SubmitDatabaseInsertTaskRequest struct {
 | |
| 	DatabaseID  int64
 | |
| 	FileURI     string
 | |
| 	TableType   table.TableType
 | |
| 	TableSheet  entity.TableSheet
 | |
| 	ConnectorID *int64
 | |
| 	UserID      int64
 | |
| }
 | |
| 
 | |
| type GetDatabaseFileProgressDataRequest struct {
 | |
| 	DatabaseID int64
 | |
| 	TableType  table.TableType
 | |
| 	UserID     int64
 | |
| }
 | |
| 
 | |
| type GetDatabaseFileProgressDataResponse struct {
 | |
| 	FileName       string
 | |
| 	Progress       int32
 | |
| 	StatusDescript *string
 | |
| }
 | |
| 
 | |
| type GetDraftDatabaseByOnlineIDRequest struct {
 | |
| 	OnlineID int64
 | |
| }
 | |
| 
 | |
| type GetDraftDatabaseByOnlineIDResponse struct {
 | |
| 	Database *entity.Database
 | |
| }
 | |
| 
 | |
| type DeleteDatabaseByAppIDRequest struct {
 | |
| 	AppID int64
 | |
| }
 | |
| 
 | |
| type DeleteDatabaseByAppIDResponse struct {
 | |
| 	DeletedDatabaseIDs []int64 //online database ids
 | |
| }
 | |
| 
 | |
| type GetAllDatabaseByAppIDRequest = database.GetAllDatabaseByAppIDRequest
 | |
| 
 | |
| type GetAllDatabaseByAppIDResponse = database.GetAllDatabaseByAppIDResponse
 |