package app

import (
	"context"
	"database/sql"
	"strings"
	"time"
)

func (store *Store) ensureServiceActorAppWorkspaceFresh(ctx context.Context, workspaceID string) error {
	_, err := store.installationsFromServiceActors(ctx, strings.TrimSpace(workspaceID))
	return err
}

func (store *Store) ensureServiceActorAppInstallationFresh(ctx context.Context, workspaceID string, installationID string) error {
	_, err := store.installationFromServiceActor(ctx, strings.TrimSpace(workspaceID), strings.TrimSpace(installationID))
	return err
}

func ptrFromSQLTime(value sql.NullTime) *time.Time {
	if !value.Valid {
		return nil
	}
	t := value.Time
	return &t
}

func timePtrOrNil(value *time.Time) any {
	if value == nil {
		return nil
	}
	return *value
}

func sameOptionalTime(left *time.Time, right *time.Time) bool {
	if left == nil || right == nil {
		return left == nil && right == nil
	}
	return left.Equal(*right)
}
