Files
prompt-library/studio-backend/guidelines-repository.md

1.3 KiB

Guidelines on Repository

Basic structure of repository for entity with workspace

import "git.metadiv.io/metadiv-studio/metaorm"

func NewWorkspaceMemberLimitRepository(db metaorm.Database, workspaceId uint) WorkspaceMemberLimitRepository {
	return &WorkspaceMemberLimitRepositoryImpl{
		WorkspaceRepositoryImpl: metaorm.NewWorkspaceRepositoryImpl[WorkspaceMemberLimit](db, workspaceId),
	}
}

type WorkspaceMemberLimitRepository interface {
	metaorm.WorkspaceRepository[WorkspaceMemberLimit]
}

type WorkspaceMemberLimitRepositoryImpl struct {
	metaorm.WorkspaceRepositoryImpl[WorkspaceMemberLimit]
}
  • Must having NewXXXXRepository method.
  • Must having XXXXRepository interface.
  • Must having XXXXRepositoryImpl struct.
  • The XXXX is entity object.

Basic structure of repository for entity without workspace

import "git.metadiv.io/metadiv-studio/metaorm"

func NewUserRepository(db metaorm.Database) UserRepository {
	return &UserRepositoryImpl{
		RepositoryImpl: metaorm.NewRepositoryImpl[User](db),
	}
}

type UserRepository interface {
	metaorm.Repository[User]
}

type UserRepositoryImpl struct {
	metaorm.RepositoryImpl[User]
}

  • Must having NewXXXXRepository method.
  • Must having XXXXRepository interface.
  • Must having XXXXRepositoryImpl struct.
  • The XXXX is entity object.