package service import ( "context" "time" "kra/app/system/internal/biz" ) type ParameterService struct{ uc *biz.ParameterUsecase } func NewParameterService(uc *biz.ParameterUsecase) *ParameterService { return &ParameterService{uc: uc} } func parameterDomain(value *SystemParameterRequest) *biz.SystemParameter { return &biz.SystemParameter{ID: value.ID, CreatedAt: value.CreatedAt, UpdatedAt: value.UpdatedAt, Name: value.Name, Key: value.Key, Value: value.Value, Desc: value.Description} } func (s *ParameterService) CreateParameterRequest(ctx context.Context, req *SystemParameterRequest) error { return s.CreateParameter(ctx, parameterDomain(req)) } func (s *ParameterService) UpdateParameterRequest(ctx context.Context, req *SystemParameterRequest) error { return s.UpdateParameter(ctx, parameterDomain(req)) } func (s *ParameterService) ParametersFilter(ctx context.Context, page, size int, name, key string, start, end *time.Time) ([]*SystemParameterResponse, int64, error) { return s.Parameters(ctx, page, size, &biz.SystemParameter{Name: name, Key: key, StartCreatedAt: start, EndCreatedAt: end}) } func parameterDTO(v *biz.SystemParameter) *SystemParameterResponse { return &SystemParameterResponse{ID: v.ID, CreatedAt: v.CreatedAt, UpdatedAt: v.UpdatedAt, DeletedAt: nil, Name: v.Name, Key: v.Key, Value: v.Value, Desc: v.Desc} } func (s *ParameterService) Parameters(ctx context.Context, page, size int, q *biz.SystemParameter) ([]*SystemParameterResponse, int64, error) { items, total, err := s.uc.ListParameters(ctx, page, size, q) if err != nil { return nil, 0, err } out := make([]*SystemParameterResponse, 0, len(items)) for _, v := range items { out = append(out, parameterDTO(v)) } return out, total, nil } func (s *ParameterService) ParameterByID(ctx context.Context, id string) (*SystemParameterResponse, error) { v, err := s.uc.FindParameterByID(ctx, id) if err != nil { return nil, err } return parameterDTO(v), nil } func (s *ParameterService) ParameterByKey(ctx context.Context, key string) (*SystemParameterResponse, error) { v, err := s.uc.FindParameterByKey(ctx, key) if err != nil { return nil, err } return parameterDTO(v), nil } func (s *ParameterService) CreateParameter(ctx context.Context, v *biz.SystemParameter) error { return s.uc.CreateParameter(ctx, v) } func (s *ParameterService) UpdateParameter(ctx context.Context, v *biz.SystemParameter) error { return s.uc.UpdateParameter(ctx, v) } func (s *ParameterService) DeleteParameters(ctx context.Context, ids []string) error { return s.uc.DeleteParameters(ctx, ids) }