package domain

import (
	"context"
	"time"
)

// ClientSecret represents the stored client secret for OIDC clients.
// Since Hydra only returns the secret once during creation, we store it here.
type ClientSecret struct {
	ClientID     string    `gorm:"primaryKey;column:client_id"`
	ClientSecret string    `gorm:"column:client_secret;not null"`
	CreatedAt    time.Time `gorm:"column:created_at"`
	UpdatedAt    time.Time `gorm:"column:updated_at"`
}

type ClientSecretRepository interface {
	Upsert(ctx context.Context, clientID, secret string) error
	GetByID(ctx context.Context, clientID string) (string, error)
	Delete(ctx context.Context, clientID string) error
}
