feat: add scheduled maintenance tasks (#320)

* add scheduled maintenance tasks

* fix failing typecheck
This commit is contained in:
Hayden 2023-02-26 18:42:23 -09:00 committed by GitHub
parent 70297b9d27
commit 025521431e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 521 additions and 121 deletions

View file

@ -26,6 +26,8 @@ type MaintenanceEntry struct {
ItemID uuid.UUID `json:"item_id,omitempty"`
// Date holds the value of the "date" field.
Date time.Time `json:"date,omitempty"`
// ScheduledDate holds the value of the "scheduled_date" field.
ScheduledDate time.Time `json:"scheduled_date,omitempty"`
// Name holds the value of the "name" field.
Name string `json:"name,omitempty"`
// Description holds the value of the "description" field.
@ -68,7 +70,7 @@ func (*MaintenanceEntry) scanValues(columns []string) ([]any, error) {
values[i] = new(sql.NullFloat64)
case maintenanceentry.FieldName, maintenanceentry.FieldDescription:
values[i] = new(sql.NullString)
case maintenanceentry.FieldCreatedAt, maintenanceentry.FieldUpdatedAt, maintenanceentry.FieldDate:
case maintenanceentry.FieldCreatedAt, maintenanceentry.FieldUpdatedAt, maintenanceentry.FieldDate, maintenanceentry.FieldScheduledDate:
values[i] = new(sql.NullTime)
case maintenanceentry.FieldID, maintenanceentry.FieldItemID:
values[i] = new(uuid.UUID)
@ -117,6 +119,12 @@ func (me *MaintenanceEntry) assignValues(columns []string, values []any) error {
} else if value.Valid {
me.Date = value.Time
}
case maintenanceentry.FieldScheduledDate:
if value, ok := values[i].(*sql.NullTime); !ok {
return fmt.Errorf("unexpected type %T for field scheduled_date", values[i])
} else if value.Valid {
me.ScheduledDate = value.Time
}
case maintenanceentry.FieldName:
if value, ok := values[i].(*sql.NullString); !ok {
return fmt.Errorf("unexpected type %T for field name", values[i])
@ -180,6 +188,9 @@ func (me *MaintenanceEntry) String() string {
builder.WriteString("date=")
builder.WriteString(me.Date.Format(time.ANSIC))
builder.WriteString(", ")
builder.WriteString("scheduled_date=")
builder.WriteString(me.ScheduledDate.Format(time.ANSIC))
builder.WriteString(", ")
builder.WriteString("name=")
builder.WriteString(me.Name)
builder.WriteString(", ")

View file

@ -21,6 +21,8 @@ const (
FieldItemID = "item_id"
// FieldDate holds the string denoting the date field in the database.
FieldDate = "date"
// FieldScheduledDate holds the string denoting the scheduled_date field in the database.
FieldScheduledDate = "scheduled_date"
// FieldName holds the string denoting the name field in the database.
FieldName = "name"
// FieldDescription holds the string denoting the description field in the database.
@ -47,6 +49,7 @@ var Columns = []string{
FieldUpdatedAt,
FieldItemID,
FieldDate,
FieldScheduledDate,
FieldName,
FieldDescription,
FieldCost,
@ -69,8 +72,6 @@ var (
DefaultUpdatedAt func() time.Time
// UpdateDefaultUpdatedAt holds the default value on update for the "updated_at" field.
UpdateDefaultUpdatedAt func() time.Time
// DefaultDate holds the default value on creation for the "date" field.
DefaultDate func() time.Time
// NameValidator is a validator for the "name" field. It is called by the builders before save.
NameValidator func(string) error
// DescriptionValidator is a validator for the "description" field. It is called by the builders before save.

View file

@ -76,6 +76,11 @@ func Date(v time.Time) predicate.MaintenanceEntry {
return predicate.MaintenanceEntry(sql.FieldEQ(FieldDate, v))
}
// ScheduledDate applies equality check predicate on the "scheduled_date" field. It's identical to ScheduledDateEQ.
func ScheduledDate(v time.Time) predicate.MaintenanceEntry {
return predicate.MaintenanceEntry(sql.FieldEQ(FieldScheduledDate, v))
}
// Name applies equality check predicate on the "name" field. It's identical to NameEQ.
func Name(v string) predicate.MaintenanceEntry {
return predicate.MaintenanceEntry(sql.FieldEQ(FieldName, v))
@ -231,6 +236,66 @@ func DateLTE(v time.Time) predicate.MaintenanceEntry {
return predicate.MaintenanceEntry(sql.FieldLTE(FieldDate, v))
}
// DateIsNil applies the IsNil predicate on the "date" field.
func DateIsNil() predicate.MaintenanceEntry {
return predicate.MaintenanceEntry(sql.FieldIsNull(FieldDate))
}
// DateNotNil applies the NotNil predicate on the "date" field.
func DateNotNil() predicate.MaintenanceEntry {
return predicate.MaintenanceEntry(sql.FieldNotNull(FieldDate))
}
// ScheduledDateEQ applies the EQ predicate on the "scheduled_date" field.
func ScheduledDateEQ(v time.Time) predicate.MaintenanceEntry {
return predicate.MaintenanceEntry(sql.FieldEQ(FieldScheduledDate, v))
}
// ScheduledDateNEQ applies the NEQ predicate on the "scheduled_date" field.
func ScheduledDateNEQ(v time.Time) predicate.MaintenanceEntry {
return predicate.MaintenanceEntry(sql.FieldNEQ(FieldScheduledDate, v))
}
// ScheduledDateIn applies the In predicate on the "scheduled_date" field.
func ScheduledDateIn(vs ...time.Time) predicate.MaintenanceEntry {
return predicate.MaintenanceEntry(sql.FieldIn(FieldScheduledDate, vs...))
}
// ScheduledDateNotIn applies the NotIn predicate on the "scheduled_date" field.
func ScheduledDateNotIn(vs ...time.Time) predicate.MaintenanceEntry {
return predicate.MaintenanceEntry(sql.FieldNotIn(FieldScheduledDate, vs...))
}
// ScheduledDateGT applies the GT predicate on the "scheduled_date" field.
func ScheduledDateGT(v time.Time) predicate.MaintenanceEntry {
return predicate.MaintenanceEntry(sql.FieldGT(FieldScheduledDate, v))
}
// ScheduledDateGTE applies the GTE predicate on the "scheduled_date" field.
func ScheduledDateGTE(v time.Time) predicate.MaintenanceEntry {
return predicate.MaintenanceEntry(sql.FieldGTE(FieldScheduledDate, v))
}
// ScheduledDateLT applies the LT predicate on the "scheduled_date" field.
func ScheduledDateLT(v time.Time) predicate.MaintenanceEntry {
return predicate.MaintenanceEntry(sql.FieldLT(FieldScheduledDate, v))
}
// ScheduledDateLTE applies the LTE predicate on the "scheduled_date" field.
func ScheduledDateLTE(v time.Time) predicate.MaintenanceEntry {
return predicate.MaintenanceEntry(sql.FieldLTE(FieldScheduledDate, v))
}
// ScheduledDateIsNil applies the IsNil predicate on the "scheduled_date" field.
func ScheduledDateIsNil() predicate.MaintenanceEntry {
return predicate.MaintenanceEntry(sql.FieldIsNull(FieldScheduledDate))
}
// ScheduledDateNotNil applies the NotNil predicate on the "scheduled_date" field.
func ScheduledDateNotNil() predicate.MaintenanceEntry {
return predicate.MaintenanceEntry(sql.FieldNotNull(FieldScheduledDate))
}
// NameEQ applies the EQ predicate on the "name" field.
func NameEQ(v string) predicate.MaintenanceEntry {
return predicate.MaintenanceEntry(sql.FieldEQ(FieldName, v))

View file

@ -70,6 +70,20 @@ func (mec *MaintenanceEntryCreate) SetNillableDate(t *time.Time) *MaintenanceEnt
return mec
}
// SetScheduledDate sets the "scheduled_date" field.
func (mec *MaintenanceEntryCreate) SetScheduledDate(t time.Time) *MaintenanceEntryCreate {
mec.mutation.SetScheduledDate(t)
return mec
}
// SetNillableScheduledDate sets the "scheduled_date" field if the given value is not nil.
func (mec *MaintenanceEntryCreate) SetNillableScheduledDate(t *time.Time) *MaintenanceEntryCreate {
if t != nil {
mec.SetScheduledDate(*t)
}
return mec
}
// SetName sets the "name" field.
func (mec *MaintenanceEntryCreate) SetName(s string) *MaintenanceEntryCreate {
mec.mutation.SetName(s)
@ -166,10 +180,6 @@ func (mec *MaintenanceEntryCreate) defaults() {
v := maintenanceentry.DefaultUpdatedAt()
mec.mutation.SetUpdatedAt(v)
}
if _, ok := mec.mutation.Date(); !ok {
v := maintenanceentry.DefaultDate()
mec.mutation.SetDate(v)
}
if _, ok := mec.mutation.Cost(); !ok {
v := maintenanceentry.DefaultCost
mec.mutation.SetCost(v)
@ -191,9 +201,6 @@ func (mec *MaintenanceEntryCreate) check() error {
if _, ok := mec.mutation.ItemID(); !ok {
return &ValidationError{Name: "item_id", err: errors.New(`ent: missing required field "MaintenanceEntry.item_id"`)}
}
if _, ok := mec.mutation.Date(); !ok {
return &ValidationError{Name: "date", err: errors.New(`ent: missing required field "MaintenanceEntry.date"`)}
}
if _, ok := mec.mutation.Name(); !ok {
return &ValidationError{Name: "name", err: errors.New(`ent: missing required field "MaintenanceEntry.name"`)}
}
@ -260,6 +267,10 @@ func (mec *MaintenanceEntryCreate) createSpec() (*MaintenanceEntry, *sqlgraph.Cr
_spec.SetField(maintenanceentry.FieldDate, field.TypeTime, value)
_node.Date = value
}
if value, ok := mec.mutation.ScheduledDate(); ok {
_spec.SetField(maintenanceentry.FieldScheduledDate, field.TypeTime, value)
_node.ScheduledDate = value
}
if value, ok := mec.mutation.Name(); ok {
_spec.SetField(maintenanceentry.FieldName, field.TypeString, value)
_node.Name = value

View file

@ -56,6 +56,32 @@ func (meu *MaintenanceEntryUpdate) SetNillableDate(t *time.Time) *MaintenanceEnt
return meu
}
// ClearDate clears the value of the "date" field.
func (meu *MaintenanceEntryUpdate) ClearDate() *MaintenanceEntryUpdate {
meu.mutation.ClearDate()
return meu
}
// SetScheduledDate sets the "scheduled_date" field.
func (meu *MaintenanceEntryUpdate) SetScheduledDate(t time.Time) *MaintenanceEntryUpdate {
meu.mutation.SetScheduledDate(t)
return meu
}
// SetNillableScheduledDate sets the "scheduled_date" field if the given value is not nil.
func (meu *MaintenanceEntryUpdate) SetNillableScheduledDate(t *time.Time) *MaintenanceEntryUpdate {
if t != nil {
meu.SetScheduledDate(*t)
}
return meu
}
// ClearScheduledDate clears the value of the "scheduled_date" field.
func (meu *MaintenanceEntryUpdate) ClearScheduledDate() *MaintenanceEntryUpdate {
meu.mutation.ClearScheduledDate()
return meu
}
// SetName sets the "name" field.
func (meu *MaintenanceEntryUpdate) SetName(s string) *MaintenanceEntryUpdate {
meu.mutation.SetName(s)
@ -191,6 +217,15 @@ func (meu *MaintenanceEntryUpdate) sqlSave(ctx context.Context) (n int, err erro
if value, ok := meu.mutation.Date(); ok {
_spec.SetField(maintenanceentry.FieldDate, field.TypeTime, value)
}
if meu.mutation.DateCleared() {
_spec.ClearField(maintenanceentry.FieldDate, field.TypeTime)
}
if value, ok := meu.mutation.ScheduledDate(); ok {
_spec.SetField(maintenanceentry.FieldScheduledDate, field.TypeTime, value)
}
if meu.mutation.ScheduledDateCleared() {
_spec.ClearField(maintenanceentry.FieldScheduledDate, field.TypeTime)
}
if value, ok := meu.mutation.Name(); ok {
_spec.SetField(maintenanceentry.FieldName, field.TypeString, value)
}
@ -287,6 +322,32 @@ func (meuo *MaintenanceEntryUpdateOne) SetNillableDate(t *time.Time) *Maintenanc
return meuo
}
// ClearDate clears the value of the "date" field.
func (meuo *MaintenanceEntryUpdateOne) ClearDate() *MaintenanceEntryUpdateOne {
meuo.mutation.ClearDate()
return meuo
}
// SetScheduledDate sets the "scheduled_date" field.
func (meuo *MaintenanceEntryUpdateOne) SetScheduledDate(t time.Time) *MaintenanceEntryUpdateOne {
meuo.mutation.SetScheduledDate(t)
return meuo
}
// SetNillableScheduledDate sets the "scheduled_date" field if the given value is not nil.
func (meuo *MaintenanceEntryUpdateOne) SetNillableScheduledDate(t *time.Time) *MaintenanceEntryUpdateOne {
if t != nil {
meuo.SetScheduledDate(*t)
}
return meuo
}
// ClearScheduledDate clears the value of the "scheduled_date" field.
func (meuo *MaintenanceEntryUpdateOne) ClearScheduledDate() *MaintenanceEntryUpdateOne {
meuo.mutation.ClearScheduledDate()
return meuo
}
// SetName sets the "name" field.
func (meuo *MaintenanceEntryUpdateOne) SetName(s string) *MaintenanceEntryUpdateOne {
meuo.mutation.SetName(s)
@ -452,6 +513,15 @@ func (meuo *MaintenanceEntryUpdateOne) sqlSave(ctx context.Context) (_node *Main
if value, ok := meuo.mutation.Date(); ok {
_spec.SetField(maintenanceentry.FieldDate, field.TypeTime, value)
}
if meuo.mutation.DateCleared() {
_spec.ClearField(maintenanceentry.FieldDate, field.TypeTime)
}
if value, ok := meuo.mutation.ScheduledDate(); ok {
_spec.SetField(maintenanceentry.FieldScheduledDate, field.TypeTime, value)
}
if meuo.mutation.ScheduledDateCleared() {
_spec.ClearField(maintenanceentry.FieldScheduledDate, field.TypeTime)
}
if value, ok := meuo.mutation.Name(); ok {
_spec.SetField(maintenanceentry.FieldName, field.TypeString, value)
}

View file

@ -323,7 +323,8 @@ var (
{Name: "id", Type: field.TypeUUID},
{Name: "created_at", Type: field.TypeTime},
{Name: "updated_at", Type: field.TypeTime},
{Name: "date", Type: field.TypeTime},
{Name: "date", Type: field.TypeTime, Nullable: true},
{Name: "scheduled_date", Type: field.TypeTime, Nullable: true},
{Name: "name", Type: field.TypeString, Size: 255},
{Name: "description", Type: field.TypeString, Nullable: true, Size: 2500},
{Name: "cost", Type: field.TypeFloat64, Default: 0},
@ -337,7 +338,7 @@ var (
ForeignKeys: []*schema.ForeignKey{
{
Symbol: "maintenance_entries_items_maintenance_entries",
Columns: []*schema.Column{MaintenanceEntriesColumns[7]},
Columns: []*schema.Column{MaintenanceEntriesColumns[8]},
RefColumns: []*schema.Column{ItemsColumns[0]},
OnDelete: schema.Cascade,
},

View file

@ -8918,22 +8918,23 @@ func (m *LocationMutation) ResetEdge(name string) error {
// MaintenanceEntryMutation represents an operation that mutates the MaintenanceEntry nodes in the graph.
type MaintenanceEntryMutation struct {
config
op Op
typ string
id *uuid.UUID
created_at *time.Time
updated_at *time.Time
date *time.Time
name *string
description *string
cost *float64
addcost *float64
clearedFields map[string]struct{}
item *uuid.UUID
cleareditem bool
done bool
oldValue func(context.Context) (*MaintenanceEntry, error)
predicates []predicate.MaintenanceEntry
op Op
typ string
id *uuid.UUID
created_at *time.Time
updated_at *time.Time
date *time.Time
scheduled_date *time.Time
name *string
description *string
cost *float64
addcost *float64
clearedFields map[string]struct{}
item *uuid.UUID
cleareditem bool
done bool
oldValue func(context.Context) (*MaintenanceEntry, error)
predicates []predicate.MaintenanceEntry
}
var _ ent.Mutation = (*MaintenanceEntryMutation)(nil)
@ -9179,9 +9180,71 @@ func (m *MaintenanceEntryMutation) OldDate(ctx context.Context) (v time.Time, er
return oldValue.Date, nil
}
// ClearDate clears the value of the "date" field.
func (m *MaintenanceEntryMutation) ClearDate() {
m.date = nil
m.clearedFields[maintenanceentry.FieldDate] = struct{}{}
}
// DateCleared returns if the "date" field was cleared in this mutation.
func (m *MaintenanceEntryMutation) DateCleared() bool {
_, ok := m.clearedFields[maintenanceentry.FieldDate]
return ok
}
// ResetDate resets all changes to the "date" field.
func (m *MaintenanceEntryMutation) ResetDate() {
m.date = nil
delete(m.clearedFields, maintenanceentry.FieldDate)
}
// SetScheduledDate sets the "scheduled_date" field.
func (m *MaintenanceEntryMutation) SetScheduledDate(t time.Time) {
m.scheduled_date = &t
}
// ScheduledDate returns the value of the "scheduled_date" field in the mutation.
func (m *MaintenanceEntryMutation) ScheduledDate() (r time.Time, exists bool) {
v := m.scheduled_date
if v == nil {
return
}
return *v, true
}
// OldScheduledDate returns the old "scheduled_date" field's value of the MaintenanceEntry entity.
// If the MaintenanceEntry object wasn't provided to the builder, the object is fetched from the database.
// An error is returned if the mutation operation is not UpdateOne, or the database query fails.
func (m *MaintenanceEntryMutation) OldScheduledDate(ctx context.Context) (v time.Time, err error) {
if !m.op.Is(OpUpdateOne) {
return v, errors.New("OldScheduledDate is only allowed on UpdateOne operations")
}
if m.id == nil || m.oldValue == nil {
return v, errors.New("OldScheduledDate requires an ID field in the mutation")
}
oldValue, err := m.oldValue(ctx)
if err != nil {
return v, fmt.Errorf("querying old value for OldScheduledDate: %w", err)
}
return oldValue.ScheduledDate, nil
}
// ClearScheduledDate clears the value of the "scheduled_date" field.
func (m *MaintenanceEntryMutation) ClearScheduledDate() {
m.scheduled_date = nil
m.clearedFields[maintenanceentry.FieldScheduledDate] = struct{}{}
}
// ScheduledDateCleared returns if the "scheduled_date" field was cleared in this mutation.
func (m *MaintenanceEntryMutation) ScheduledDateCleared() bool {
_, ok := m.clearedFields[maintenanceentry.FieldScheduledDate]
return ok
}
// ResetScheduledDate resets all changes to the "scheduled_date" field.
func (m *MaintenanceEntryMutation) ResetScheduledDate() {
m.scheduled_date = nil
delete(m.clearedFields, maintenanceentry.FieldScheduledDate)
}
// SetName sets the "name" field.
@ -9385,7 +9448,7 @@ func (m *MaintenanceEntryMutation) Type() string {
// order to get all numeric fields that were incremented/decremented, call
// AddedFields().
func (m *MaintenanceEntryMutation) Fields() []string {
fields := make([]string, 0, 7)
fields := make([]string, 0, 8)
if m.created_at != nil {
fields = append(fields, maintenanceentry.FieldCreatedAt)
}
@ -9398,6 +9461,9 @@ func (m *MaintenanceEntryMutation) Fields() []string {
if m.date != nil {
fields = append(fields, maintenanceentry.FieldDate)
}
if m.scheduled_date != nil {
fields = append(fields, maintenanceentry.FieldScheduledDate)
}
if m.name != nil {
fields = append(fields, maintenanceentry.FieldName)
}
@ -9423,6 +9489,8 @@ func (m *MaintenanceEntryMutation) Field(name string) (ent.Value, bool) {
return m.ItemID()
case maintenanceentry.FieldDate:
return m.Date()
case maintenanceentry.FieldScheduledDate:
return m.ScheduledDate()
case maintenanceentry.FieldName:
return m.Name()
case maintenanceentry.FieldDescription:
@ -9446,6 +9514,8 @@ func (m *MaintenanceEntryMutation) OldField(ctx context.Context, name string) (e
return m.OldItemID(ctx)
case maintenanceentry.FieldDate:
return m.OldDate(ctx)
case maintenanceentry.FieldScheduledDate:
return m.OldScheduledDate(ctx)
case maintenanceentry.FieldName:
return m.OldName(ctx)
case maintenanceentry.FieldDescription:
@ -9489,6 +9559,13 @@ func (m *MaintenanceEntryMutation) SetField(name string, value ent.Value) error
}
m.SetDate(v)
return nil
case maintenanceentry.FieldScheduledDate:
v, ok := value.(time.Time)
if !ok {
return fmt.Errorf("unexpected type %T for field %s", value, name)
}
m.SetScheduledDate(v)
return nil
case maintenanceentry.FieldName:
v, ok := value.(string)
if !ok {
@ -9555,6 +9632,12 @@ func (m *MaintenanceEntryMutation) AddField(name string, value ent.Value) error
// mutation.
func (m *MaintenanceEntryMutation) ClearedFields() []string {
var fields []string
if m.FieldCleared(maintenanceentry.FieldDate) {
fields = append(fields, maintenanceentry.FieldDate)
}
if m.FieldCleared(maintenanceentry.FieldScheduledDate) {
fields = append(fields, maintenanceentry.FieldScheduledDate)
}
if m.FieldCleared(maintenanceentry.FieldDescription) {
fields = append(fields, maintenanceentry.FieldDescription)
}
@ -9572,6 +9655,12 @@ func (m *MaintenanceEntryMutation) FieldCleared(name string) bool {
// error if the field is not defined in the schema.
func (m *MaintenanceEntryMutation) ClearField(name string) error {
switch name {
case maintenanceentry.FieldDate:
m.ClearDate()
return nil
case maintenanceentry.FieldScheduledDate:
m.ClearScheduledDate()
return nil
case maintenanceentry.FieldDescription:
m.ClearDescription()
return nil
@ -9595,6 +9684,9 @@ func (m *MaintenanceEntryMutation) ResetField(name string) error {
case maintenanceentry.FieldDate:
m.ResetDate()
return nil
case maintenanceentry.FieldScheduledDate:
m.ResetScheduledDate()
return nil
case maintenanceentry.FieldName:
m.ResetName()
return nil

View file

@ -446,12 +446,8 @@ func init() {
maintenanceentry.DefaultUpdatedAt = maintenanceentryDescUpdatedAt.Default.(func() time.Time)
// maintenanceentry.UpdateDefaultUpdatedAt holds the default value on update for the updated_at field.
maintenanceentry.UpdateDefaultUpdatedAt = maintenanceentryDescUpdatedAt.UpdateDefault.(func() time.Time)
// maintenanceentryDescDate is the schema descriptor for date field.
maintenanceentryDescDate := maintenanceentryFields[1].Descriptor()
// maintenanceentry.DefaultDate holds the default value on creation for the date field.
maintenanceentry.DefaultDate = maintenanceentryDescDate.Default.(func() time.Time)
// maintenanceentryDescName is the schema descriptor for name field.
maintenanceentryDescName := maintenanceentryFields[2].Descriptor()
maintenanceentryDescName := maintenanceentryFields[3].Descriptor()
// maintenanceentry.NameValidator is a validator for the "name" field. It is called by the builders before save.
maintenanceentry.NameValidator = func() func(string) error {
validators := maintenanceentryDescName.Validators
@ -469,11 +465,11 @@ func init() {
}
}()
// maintenanceentryDescDescription is the schema descriptor for description field.
maintenanceentryDescDescription := maintenanceentryFields[3].Descriptor()
maintenanceentryDescDescription := maintenanceentryFields[4].Descriptor()
// maintenanceentry.DescriptionValidator is a validator for the "description" field. It is called by the builders before save.
maintenanceentry.DescriptionValidator = maintenanceentryDescDescription.Validators[0].(func(string) error)
// maintenanceentryDescCost is the schema descriptor for cost field.
maintenanceentryDescCost := maintenanceentryFields[4].Descriptor()
maintenanceentryDescCost := maintenanceentryFields[5].Descriptor()
// maintenanceentry.DefaultCost holds the default value on creation for the cost field.
maintenanceentry.DefaultCost = maintenanceentryDescCost.Default.(float64)
// maintenanceentryDescID is the schema descriptor for id field.

View file

@ -1,8 +1,6 @@
package schema
import (
"time"
"entgo.io/ent"
"entgo.io/ent/schema/edge"
"entgo.io/ent/schema/field"
@ -24,7 +22,9 @@ func (MaintenanceEntry) Fields() []ent.Field {
return []ent.Field{
field.UUID("item_id", uuid.UUID{}),
field.Time("date").
Default(time.Now),
Optional(),
field.Time("scheduled_date").
Optional(),
field.String("name").
MaxLen(255).
NotEmpty(),