package model

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

type UUID struct {
    payload     uuid.UUID
}

func MakeUUID() UUID {
    id, _ := uuid.NewRandom()
    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()
}