package model

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

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

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

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

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

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