package model

import (
	"github.com/tech/sendico/pkg/db/storable"
	"go.mongodb.org/mongo-driver/bson/primitive"
)

type PermissionBoundStorable interface {
	storable.Storable
	OrganizationBound
	Archivable
	GetPermissionRef() primitive.ObjectID
	SetPermissionRef(permissionRef primitive.ObjectID)
}

type PermissionBound struct {
	storable.Base         `bson:",inline" json:",inline"`
	ArchivableBase        `bson:",inline" json:",inline"`
	OrganizationBoundBase `bson:",inline" json:",inline"`
	PermissionRef         primitive.ObjectID `bson:"permissionRef" json:"permissionRef"`
}

func (b *PermissionBound) GetPermissionRef() primitive.ObjectID {
	return b.PermissionRef
}

func (b *PermissionBound) GetOrganizationRef() primitive.ObjectID {
	return b.OrganizationRef
}

func (b *PermissionBound) SetPermissionRef(permissionRef primitive.ObjectID) {
	b.PermissionRef = permissionRef
}
