// Package badge provides primitives to interact with the openapi HTTP API.
//
// Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.5.1 DO NOT EDIT.
package badge

import (
	"github.com/meshery/schemas/models/core"
	"github.com/gofrs/uuid"
)

// Badge defines model for Badge.
type Badge struct {
	// CreatedAt Timestamp when the resource was created.
	CreatedAt core.CreatedAt `db:"created_at" json:"created_at" yaml:"created_at"`

	// DeletedAt Timestamp when the resource was deleted, if applicable
	DeletedAt core.NullTime `db:"deleted_at" json:"deleted_at" yaml:"deleted_at"`

	// Description A description of the milestone achieved, often including criteria for receiving this recognition.
	Description string `db:"description" json:"description" yaml:"description"`

	// Id A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
	ID core.Uuid `db:"id" json:"id" yaml:"id"`

	// ImageUrl URL to the badge image
	ImageUrl string `db:"image_url" json:"image_url" yaml:"image_url"`

	// Label unique identifier for the badge ( auto generated )
	Label string `db:"label" json:"label" yaml:"label"`

	// Name Concise descriptor for the badge or certificate.
	Name string `db:"name" json:"name" yaml:"name"`

	// OrgId A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
	OrgId core.Uuid `db:"org_id" json:"org_id" yaml:"org_id"`

	// UpdatedAt Timestamp when the resource was updated.
	UpdatedAt core.UpdatedAt `db:"updated_at" json:"updated_at" yaml:"updated_at"`
}

// BadgeAssignmentPayload defines model for BadgeAssignmentPayload.
type BadgeAssignmentPayload struct {
	// Badges The badges of the badgeassignment.
	Badges *[]string `json:"badges,omitempty" yaml:"badges,omitempty"`

	// Notify The notify of the badgeassignment.
	Notify *bool `json:"notify,omitempty" yaml:"notify,omitempty"`

	// UserId ID of the user who owns or created this resource.
	UserId *uuid.UUID `json:"user_id,omitempty" yaml:"user_id,omitempty"`
}

// BadgePayload Payload for creating or updating a badge.
type BadgePayload struct {
	// Description A description of the milestone achieved, often including criteria for receiving this recognition.
	Description string `db:"description" json:"description" yaml:"description"`

	// Id A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
	ID *core.Uuid `db:"id" json:"id,omitempty" yaml:"id,omitempty"`

	// ImageUrl URL to the badge image
	ImageUrl string `db:"image_url" json:"image_url" yaml:"image_url"`

	// Label unique identifier for the badge ( auto generated )
	Label string `db:"label" json:"label" yaml:"label"`

	// Name Concise descriptor for the badge or certificate.
	Name string `db:"name" json:"name" yaml:"name"`

	// OrgId A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
	OrgId core.Uuid `db:"org_id" json:"org_id" yaml:"org_id"`
}

// BadgesPage defines model for BadgesPage.
type BadgesPage struct {
	// Badges The badges of the badgespage.
	Badges *map[string]Badge `json:"badges,omitempty" yaml:"badges,omitempty"`
}
