mirror of
https://github.com/pocketbase/pocketbase.git
synced 2025-03-18 13:47:47 +02:00
33 lines
1.0 KiB
Go
33 lines
1.0 KiB
Go
package core
|
|
|
|
// RecordProxy defines an interface for a Record proxy/project model,
|
|
// aka. custom model struct that acts on behalve the proxied Record to
|
|
// allow for example typed getter/setters for the Record fields.
|
|
//
|
|
// To implement the interface it is usually enough to embed the [BaseRecordProxy] struct.
|
|
type RecordProxy interface {
|
|
// ProxyRecord returns the proxied Record model.
|
|
ProxyRecord() *Record
|
|
|
|
// SetProxyRecord loads the specified record model into the current proxy.
|
|
SetProxyRecord(record *Record)
|
|
}
|
|
|
|
var _ RecordProxy = (*BaseRecordProxy)(nil)
|
|
|
|
// BaseRecordProxy implements the [RecordProxy] interface and it is intended
|
|
// to be used as embed to custom user provided Record proxy structs.
|
|
type BaseRecordProxy struct {
|
|
*Record
|
|
}
|
|
|
|
// ProxyRecord returns the proxied Record model.
|
|
func (m *BaseRecordProxy) ProxyRecord() *Record {
|
|
return m.Record
|
|
}
|
|
|
|
// SetProxyRecord loads the specified record model into the current proxy.
|
|
func (m *BaseRecordProxy) SetProxyRecord(record *Record) {
|
|
m.Record = record
|
|
}
|