LeaseTerms string
const (
ShortLease LeaseTerms = "SHORT_TERM"
LongLease LeaseTerms = "LONG_TERM"
)
type Offer struct {
...
LeaseTerms LeaseTerms
...
}
база pg
подумал это то самое время что бы поле тоже сделать enum
CREATE TYPE LEASE_TERMS AS ENUM (
'SHORT_TERM', 'LONG_TERM'
);
Поле LeaseTerms в структуре может быть опциональным
т.е. если поле не заполнено то в базу летит пустая строка, а такого значения enum в базе нет
Как варианты
1)перед сохранением в бд, если пустая строка то в базу NULL
2) добавить в go enum что то типа NoSet LeaseTerms = "NO_SET" и заполнять его этим значением
3) если в структуре это поле сделать ссылкой то установка значения выглядит как то не очень newOffer.LeaseTerms = (*domain.LeaseTerms)(&update.Unique). (или можно сделать сеттеры для этой структуры и все спрятать?)
имхо, в структуре тип указатель и в бд null ну либо не создавать энам и писать путую строку
не нужно пытаться натянуть СУБД на Golang с NO_SET.
Я за добавление в enum дефолтного значения для null. Сильно упростит вам жизнь
Обсуждают сегодня