bill-server-go/internal/label/domain.go
2023-06-02 16:07:54 +08:00

46 lines
1004 B
Go

package label
import (
"context"
"gorm.io/gorm"
)
type Label struct {
gorm.Model
Type string
Name string
Count int
}
type LabelDTO struct {
ID int `json:"id"`
Type string `json:"type"`
Name string `json:"name"`
Count int `json:"count"`
}
func (l *Label) Dto() interface{} {
return LabelDTO{
ID: int(l.ID),
Type: l.Type,
Name: l.Name,
Count: l.Count,
}
}
type LabelRepository interface {
GetLabels(ctx context.Context) ([]Label, error)
GetLabelById(ctx context.Context, id int) (*Label, error)
CreateLabel(ctx context.Context, label *Label) error
UpdateLabel(ctx context.Context, label *Label) error
DeleteLabel(ctx context.Context, id int) error
}
type LabelService interface {
GetLabels(ctx context.Context) ([]interface{}, error)
GetLabelById(ctx context.Context, id int) (interface{}, error)
CreateLabel(ctx context.Context, label *Label) error
UpdateLabel(ctx context.Context, label *Label) error
DeleteLabel(ctx context.Context, id int) error
}