package model

import (
	sqldriver "database/sql/driver"
	"github.com/google/uuid"
)

type UUID struct {
	payload uuid.UUID
}

func MakeUUID() UUID {
	id, _ := uuid.NewV7()
	return UUID{payload: id}
}

func (self UUID) Value() (sqldriver.Value, error) {
	return self.payload[:], nil
}

func (self *UUID) Scan(value any) error {
	return self.payload.Scan(value)
}

func (self UUID) String() string {
	return self.payload.String()
}