package repository import "resume-platform/internal/model" // ResumeRepository 简历数据访问层接口,定义简历相关的数据操作方法 type ResumeRepository interface { GetResume(id string) (*model.Resume, error) GetResumeByRoute(route string) (*model.Resume, error) RouteExists(route string) bool GetAllResumes() ([]*model.Resume, error) GetResumesByUserID(userID string) ([]*model.Resume, error) GetResumesWithPagination(page, pageSize int) ([]*model.Resume, int, error) GetResumesWithFilter(page, pageSize int, userID, keyword, template string, showInHome *bool) ([]*model.Resume, int, error) CreateResume(resume *model.Resume) error UpdateResume(id string, update *model.ResumeUpdate) error DeleteResume(id string) error UpdateResumeUserID(resumeID, userID string) error Exists(id string) bool CreateUser(user *model.User) error GetUserByUsername(username string) (*model.User, error) GetUserByID(id string) (*model.User, error) GetAllUsers() ([]*model.User, error) GetUsersWithPagination(page, pageSize int) ([]*model.User, int, error) UpdateUser(id string, user *model.User) error DeleteUser(id string) error GetPortfolioItems() ([]*model.PortfolioItem, error) GetPortfolioItemsWithPagination(page, pageSize int) ([]*model.PortfolioItem, int, error) GetPortfolioItemsByUserID(userID string) ([]*model.PortfolioItem, error) GetPortfolioItem(id uint) (*model.PortfolioItem, error) CreatePortfolioItem(item *model.PortfolioItem) error UpdatePortfolioItem(id uint, item *model.PortfolioItem) error DeletePortfolioItem(id uint) error CreateQuizRecord(record *model.QuizRecord) error GetQuizRecordsByResume(resumeRoute string) ([]*model.QuizRecord, error) GetQuizRecordsByUserID(userID string) ([]*model.QuizRecord, error) GetQuizRecordsByUserIDWithPagination(userID string, page, pageSize int) ([]*model.QuizRecord, int, error) GetQuizRecord(id string) (*model.QuizRecord, error) DeleteQuizRecord(id string) error CreateFavoriteQuestion(fav *model.FavoriteQuestion) error GetFavoriteQuestions(resumeRoute string, isFavorite, isCorrect *bool) ([]*model.FavoriteQuestion, error) GetFavoriteQuestionsByUserID(userID string) ([]*model.FavoriteQuestion, error) DeleteFavoriteQuestion(id string) error ToggleFavorite(id string) error CreateDocument(doc *model.Document) error GetDocument(id, userID string) (*model.Document, error) GetDocumentByID(id string) (*model.Document, error) GetDocumentsByUserID(userID string) ([]*model.Document, error) UpdateDocument(doc *model.Document) error DeleteDocument(id, userID string) error CreateDocumentChunk(chunk *model.DocumentChunk) error GetDocumentChunksByUserID(userID string) ([]*model.DocumentChunk, error) GetAllDocumentChunks() ([]*model.DocumentChunk, error) GetDocumentChunksByDocumentID(documentID string) ([]*model.DocumentChunk, error) CreateEmbedding(embedding *model.Embedding) error GetEmbeddingByContentHash(contentHash string) (*model.Embedding, error) GetEmbeddingsByUserID(userID string) ([]*model.Embedding, error) GetAllEmbeddings() ([]*model.Embedding, error) DeleteEmbedding(id string) error DeleteEmbeddingsBySource(sourceType, sourceID string) error CreateChatHistory(history *model.ChatHistory) error GetChatHistoryByUserID(userID string) ([]*model.ChatHistory, error) GetAllMenus() ([]*model.Menu, error) CreateMenu(menu *model.Menu) error UpdateMenu(id string, menu *model.Menu) error DeleteMenu(id string) error GetSystemConfig() (*model.SystemConfig, error) CreateSystemConfig(config *model.SystemConfig) error UpdateSystemConfig(id string, config *model.SystemConfig) error CleanSystemConfig() error CreateLoginHistory(history *model.LoginHistory) error GetLoginHistory(page, pageSize int) ([]*model.LoginHistory, int, error) CreateNotification(n *model.Notification) error GetNotifications() ([]*model.Notification, error) GetUnreadNotificationCount() (int, error) MarkNotificationAsRead(id string) error MarkAllNotificationsAsRead() error DeleteAllNotifications() error DeleteNotification(id string) error }