forked from mirrors/homebox
refactor: remove empty services (#116)
* remove empty services * remove old factory * remove old static files * cleanup more duplicate service code * file/folder reorg
This commit is contained in:
parent
6529549289
commit
cd82fe0d89
179 changed files with 514 additions and 582 deletions
118
backend/internal/data/ent/schema/item.go
Normal file
118
backend/internal/data/ent/schema/item.go
Normal file
|
@ -0,0 +1,118 @@
|
|||
package schema
|
||||
|
||||
import (
|
||||
"entgo.io/ent"
|
||||
"entgo.io/ent/dialect/entsql"
|
||||
"entgo.io/ent/schema/edge"
|
||||
"entgo.io/ent/schema/field"
|
||||
"entgo.io/ent/schema/index"
|
||||
"github.com/hay-kot/homebox/backend/internal/data/ent/schema/mixins"
|
||||
)
|
||||
|
||||
// Item holds the schema definition for the Item entity.
|
||||
type Item struct {
|
||||
ent.Schema
|
||||
}
|
||||
|
||||
func (Item) Mixin() []ent.Mixin {
|
||||
return []ent.Mixin{
|
||||
mixins.BaseMixin{},
|
||||
mixins.DetailsMixin{},
|
||||
}
|
||||
}
|
||||
|
||||
func (Item) Indexes() []ent.Index {
|
||||
return []ent.Index{
|
||||
// Unique index on the "title" field.
|
||||
index.Fields("name"),
|
||||
index.Fields("manufacturer"),
|
||||
index.Fields("model_number"),
|
||||
index.Fields("serial_number"),
|
||||
}
|
||||
}
|
||||
|
||||
// Fields of the Item.
|
||||
func (Item) Fields() []ent.Field {
|
||||
return []ent.Field{
|
||||
field.String("import_ref").
|
||||
Optional().
|
||||
MaxLen(100).
|
||||
Immutable(),
|
||||
field.String("notes").
|
||||
MaxLen(1000).
|
||||
Optional(),
|
||||
field.Int("quantity").
|
||||
Default(1),
|
||||
field.Bool("insured").
|
||||
Default(false),
|
||||
|
||||
// ------------------------------------
|
||||
// item identification
|
||||
field.String("serial_number").
|
||||
MaxLen(255).
|
||||
Optional(),
|
||||
field.String("model_number").
|
||||
MaxLen(255).
|
||||
Optional(),
|
||||
field.String("manufacturer").
|
||||
MaxLen(255).
|
||||
Optional(),
|
||||
|
||||
// ------------------------------------
|
||||
// Item Warranty
|
||||
field.Bool("lifetime_warranty").
|
||||
Default(false),
|
||||
field.Time("warranty_expires").
|
||||
Optional(),
|
||||
field.Text("warranty_details").
|
||||
MaxLen(1000).
|
||||
Optional(),
|
||||
|
||||
// ------------------------------------
|
||||
// item purchase
|
||||
field.Time("purchase_time").
|
||||
Optional(),
|
||||
field.String("purchase_from").
|
||||
Optional(),
|
||||
field.Float("purchase_price").
|
||||
Default(0),
|
||||
|
||||
// ------------------------------------
|
||||
// Sold Details
|
||||
field.Time("sold_time").
|
||||
Optional(),
|
||||
field.String("sold_to").
|
||||
Optional(),
|
||||
field.Float("sold_price").
|
||||
Default(0),
|
||||
field.String("sold_notes").
|
||||
MaxLen(1000).
|
||||
Optional(),
|
||||
}
|
||||
}
|
||||
|
||||
// Edges of the Item.
|
||||
func (Item) Edges() []ent.Edge {
|
||||
return []ent.Edge{
|
||||
edge.To("children", Item.Type).
|
||||
From("parent").
|
||||
Unique(),
|
||||
edge.From("group", Group.Type).
|
||||
Ref("items").
|
||||
Required().
|
||||
Unique(),
|
||||
edge.From("label", Label.Type).
|
||||
Ref("items"),
|
||||
edge.From("location", Location.Type).
|
||||
Ref("items").
|
||||
Unique(),
|
||||
edge.To("fields", ItemField.Type).
|
||||
Annotations(entsql.Annotation{
|
||||
OnDelete: entsql.Cascade,
|
||||
}),
|
||||
edge.To("attachments", Attachment.Type).
|
||||
Annotations(entsql.Annotation{
|
||||
OnDelete: entsql.Cascade,
|
||||
}),
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue