package model

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

type Client struct {
	storable.Base           `bson:",inline" json:",inline"`
	ClientID                string         `bson:"clientId"`
	ClientName              string         `bson:"clientName"`
	ClientSecret            string         `bson:"clientSecret,omitempty"`
	AllowedCIDRs            []string       `bson:"allowedCIDRs,omitempty"`
	AllowedScopes           []string       `bson:"allowedScopes"`
	RedirectURIs            []string       `bson:"redirectURIs"`
	GrantTypes              []string       `bson:"grantTypes"`
	TokenEndpointAuthMethod string         `bson:"tokenEndpointAuthMethod"`
	AccountRef              *bson.ObjectID `bson:"accountRef,omitempty"` // owner reference
	IsRevoked               bool           `bson:"isRevoked"`
}

func (*Client) Collection() string {
	return mservice.Clients
}
