Skip to content

Commit

Permalink
New PK naming for CompetenceId
Browse files Browse the repository at this point in the history
  • Loading branch information
emacsway committed Nov 20, 2023
1 parent a138a18 commit 4de0fd0
Show file tree
Hide file tree
Showing 33 changed files with 208 additions and 208 deletions.
6 changes: 3 additions & 3 deletions grade/internal/domain/artifact/artifact.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ func NewArtifact(
name values.Name,
description values.Description,
url values.Url,
competenceIds []competence.TenantCompetenceId,
competenceIds []competence.CompetenceId,
authorIds []member.MemberId,
ownerId member.MemberId,
createdAt time.Time,
Expand Down Expand Up @@ -51,7 +51,7 @@ type Artifact struct {
name values.Name
description values.Description
url values.Url
competenceIds []competence.TenantCompetenceId
competenceIds []competence.CompetenceId
authorIds []member.MemberId
ownerId member.MemberId
createdAt time.Time
Expand Down Expand Up @@ -127,7 +127,7 @@ type ArtifactExporterSetter interface {
SetName(values.Name)
SetDescription(values.Description)
SetUrl(values.Url)
AddCompetenceId(competence.TenantCompetenceId)
AddCompetenceId(competence.CompetenceId)
AddAuthorId(member.MemberId)
SetOwnerId(member.MemberId)
SetCreatedAt(time.Time)
Expand Down
6 changes: 3 additions & 3 deletions grade/internal/domain/artifact/artifact_exporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ type ArtifactExporter struct {
Name exporters.StringExporter
Description exporters.StringExporter
Url exporters.StringExporter
CompetenceIds []competence.TenantCompetenceIdExporter
CompetenceIds []competence.CompetenceIdExporter
AuthorIds []member.MemberIdExporter
OwnerId member.MemberIdExporter
CreatedAt time.Time
Expand All @@ -42,8 +42,8 @@ func (ex *ArtifactExporter) SetUrl(val values.Url) {
val.Export(&ex.Url)
}

func (ex *ArtifactExporter) AddCompetenceId(val competence.TenantCompetenceId) {
var competenceExporter competence.TenantCompetenceIdExporter
func (ex *ArtifactExporter) AddCompetenceId(val competence.CompetenceId) {
var competenceExporter competence.CompetenceIdExporter
val.Export(&competenceExporter)
ex.CompetenceIds = append(ex.CompetenceIds, competenceExporter)
}
Expand Down
8 changes: 4 additions & 4 deletions grade/internal/domain/artifact/artifact_faker.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ func WithCompetenceFaker(competenceFaker *competence.CompetenceFaker) ArtifactFa
func NewArtifactFaker(opts ...ArtifactFakerOption) *ArtifactFaker {
f := &ArtifactFaker{
Id: values.NewTenantArtifactIdFaker(),
CompetenceIds: []competenceVal.TenantCompetenceIdFaker{competenceVal.NewTenantCompetenceIdFaker()},
CompetenceIds: []competenceVal.CompetenceIdFaker{competenceVal.NewCompetenceIdFaker()},
AuthorIds: []memberVal.MemberIdFaker{},
OwnerId: memberVal.NewMemberIdFaker(),
MemberFaker: member.NewMemberFaker(),
Expand All @@ -79,7 +79,7 @@ type ArtifactFaker struct {
Name string
Description string
Url string
CompetenceIds []competenceVal.TenantCompetenceIdFaker
CompetenceIds []competenceVal.CompetenceIdFaker
AuthorIds []memberVal.MemberIdFaker
OwnerId memberVal.MemberIdFaker
CreatedAt time.Time
Expand Down Expand Up @@ -128,7 +128,7 @@ func (f *ArtifactFaker) AddAuthorId(authorId memberVal.MemberIdFaker) {
f.AuthorIds = append(f.AuthorIds, authorId)
}

func (f *ArtifactFaker) AddCompetenceId(competenceId competenceVal.TenantCompetenceIdFaker) {
func (f *ArtifactFaker) AddCompetenceId(competenceId competenceVal.CompetenceIdFaker) {
f.CompetenceIds = append(f.CompetenceIds, competenceId)
}

Expand Down Expand Up @@ -158,7 +158,7 @@ func (f *ArtifactFaker) Create() (*Artifact, error) {
if err != nil {
return nil, err
}
var competenceIds []competenceVal.TenantCompetenceId
var competenceIds []competenceVal.CompetenceId
for i := range f.CompetenceIds {
competenceId, err := f.CompetenceIds[i].Create()
if err != nil {
Expand Down
4 changes: 2 additions & 2 deletions grade/internal/domain/artifact/artifact_reconstitutor.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ type ArtifactSnapshotReconstitutor struct {
Name string
Description string
Url string
CompetenceIds []competenceVal.TenantCompetenceIdReconstitutor
CompetenceIds []competenceVal.CompetenceIdReconstitutor
AuthorIds []memberVal.MemberIdReconstitutor
OwnerId memberVal.MemberIdReconstitutor
CreatedAt time.Time
Expand Down Expand Up @@ -64,7 +64,7 @@ func (r ArtifactSnapshotReconstitutor) Reconstitute() (*Artifact, error) {
if err != nil {
return nil, err
}
competenceIds := []competenceVal.TenantCompetenceId{}
competenceIds := []competenceVal.CompetenceId{}
for i := range r.CompetenceIds {
competenceId, err := r.CompetenceIds[i].Reconstitute()
if err != nil {
Expand Down
4 changes: 2 additions & 2 deletions grade/internal/domain/artifact/artifact_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ func TestArtifactExport(t *testing.T) {
Name: exporters.StringExporter(f.Name),
Description: exporters.StringExporter(f.Description),
Url: exporters.StringExporter(f.Url),
CompetenceIds: []competence.TenantCompetenceIdExporter{
competence.NewTenantCompetenceIdExporter(
CompetenceIds: []competence.CompetenceIdExporter{
competence.NewCompetenceIdExporter(
f.CompetenceIds[0].TenantId,
f.CompetenceIds[0].CompetenceId,
),
Expand Down
8 changes: 4 additions & 4 deletions grade/internal/domain/artifact/events/artifact_proposed.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ func NewArtifactProposed(
name values.Name,
description values.Description,
url values.Url,
competenceIds []competence.TenantCompetenceId,
competenceIds []competence.CompetenceId,
authorIds []member.MemberId,
ownerId member.MemberId,
createdAt time.Time,
Expand All @@ -39,7 +39,7 @@ type ArtifactProposed struct {
name values.Name
description values.Description
url values.Url
competenceIds []competence.TenantCompetenceId
competenceIds []competence.CompetenceId
authorIds []member.MemberId
ownerId member.MemberId
createdAt time.Time
Expand Down Expand Up @@ -67,7 +67,7 @@ func (e ArtifactProposed) Url() values.Url {
return e.url
}

func (e ArtifactProposed) CompetenceIds() []competence.TenantCompetenceId {
func (e ArtifactProposed) CompetenceIds() []competence.CompetenceId {
return e.competenceIds
}

Expand Down Expand Up @@ -136,7 +136,7 @@ type ArtifactProposedExporterSetter interface {
SetName(values.Name)
SetDescription(values.Description)
SetUrl(values.Url)
AddCompetenceId(competence.TenantCompetenceId)
AddCompetenceId(competence.CompetenceId)
AddAuthorId(member.MemberId)
SetOwnerId(member.MemberId)
SetCreatedAt(time.Time)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ type ArtifactProposedReconstitutor struct {
Name string
Description string
Url string
CompetenceIds []competenceVal.TenantCompetenceIdReconstitutor
CompetenceIds []competenceVal.CompetenceIdReconstitutor
AuthorIds []memberVal.MemberIdReconstitutor
OwnerId memberVal.MemberIdReconstitutor
CreatedAt time.Time
Expand Down Expand Up @@ -44,7 +44,7 @@ func (r ArtifactProposedReconstitutor) Reconstitute() (*ArtifactProposed, error)
if err != nil {
return nil, err
}
competenceIds := []competenceVal.TenantCompetenceId{}
competenceIds := []competenceVal.CompetenceId{}
for i := range r.CompetenceIds {
competenceId, err := r.CompetenceIds[i].Reconstitute()
if err != nil {
Expand Down
6 changes: 3 additions & 3 deletions grade/internal/domain/competence/competence.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
)

func NewCompetence(
id values.TenantCompetenceId,
id values.CompetenceId,
name values.Name,
ownerId member.MemberId,
createdAt time.Time,
Expand All @@ -33,7 +33,7 @@ func NewCompetence(
}

type Competence struct {
id values.TenantCompetenceId
id values.CompetenceId
name values.Name
ownerId member.MemberId
createdAt time.Time
Expand Down Expand Up @@ -69,7 +69,7 @@ func (c Competence) Export(ex CompetenceExporterSetter) {
}

type CompetenceExporterSetter interface {
SetId(id values.TenantCompetenceId)
SetId(id values.CompetenceId)
SetName(values.Name)
SetOwnerId(member.MemberId)
SetCreatedAt(time.Time)
Expand Down
4 changes: 2 additions & 2 deletions grade/internal/domain/competence/competence_exporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ import (
)

type CompetenceExporter struct {
Id values.TenantCompetenceIdExporter
Id values.CompetenceIdExporter
Name exporters.StringExporter
OwnerId member.MemberIdExporter
CreatedAt time.Time
Version uint
}

func (ex *CompetenceExporter) SetId(val values.TenantCompetenceId) {
func (ex *CompetenceExporter) SetId(val values.CompetenceId) {
val.Export(&ex.Id)
}

Expand Down
4 changes: 2 additions & 2 deletions grade/internal/domain/competence/competence_faker.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func WithMemberFaker(memberFaker *member.MemberFaker) CompetenceFakerOption {

func NewCompetenceFaker(opts ...CompetenceFakerOption) *CompetenceFaker {
f := &CompetenceFaker{
Id: values.NewTenantCompetenceIdFaker(),
Id: values.NewCompetenceIdFaker(),
OwnerId: memberVal.NewMemberIdFaker(),
Repository: CompetenceDummyRepository{},
MemberFaker: member.NewMemberFaker(),
Expand All @@ -51,7 +51,7 @@ func NewCompetenceFaker(opts ...CompetenceFakerOption) *CompetenceFaker {
}

type CompetenceFaker struct {
Id values.TenantCompetenceIdFaker
Id values.CompetenceIdFaker
Name string
OwnerId memberVal.MemberIdFaker
CreatedAt time.Time
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
)

type CompetenceReconstitutor struct {
Id values.TenantCompetenceIdReconstitutor
Id values.CompetenceIdReconstitutor
Name string
OwnerId member.MemberIdReconstitutor
CreatedAt time.Time
Expand Down
2 changes: 1 addition & 1 deletion grade/internal/domain/competence/competence_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ func TestCompetenceExport(t *testing.T) {
}
agg.Export(&actualExporter)
assert.Equal(t, CompetenceExporter{
Id: values.NewTenantCompetenceIdExporter(f.Id.TenantId, f.Id.CompetenceId),
Id: values.NewCompetenceIdExporter(f.Id.TenantId, f.Id.CompetenceId),
Name: exporters.StringExporter(f.Name),
OwnerId: member.NewMemberIdExporter(f.OwnerId.TenantId, f.OwnerId.MemberId),
CreatedAt: f.CreatedAt,
Expand Down
6 changes: 3 additions & 3 deletions grade/internal/domain/competence/events/competence_created.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
)

func NewCompetenceCreated(
id values.TenantCompetenceId,
id values.CompetenceId,
name values.Name,
ownerId memberVal.MemberId,
createdAt time.Time,
Expand All @@ -22,7 +22,7 @@ func NewCompetenceCreated(
}

type CompetenceCreated struct {
id values.TenantCompetenceId
id values.CompetenceId
name values.Name
ownerId memberVal.MemberId
createdAt time.Time
Expand Down Expand Up @@ -55,7 +55,7 @@ func (e CompetenceCreated) Export(ex CompetenceCreatedExporterSetter) {
}

type CompetenceCreatedExporterSetter interface {
SetId(id values.TenantCompetenceId)
SetId(id values.CompetenceId)
SetName(values.Name)
SetOwnerId(memberVal.MemberId)
SetCreatedAt(time.Time)
Expand Down
6 changes: 3 additions & 3 deletions grade/internal/domain/competence/events/name_updated.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
)

func NewNameUpdated(
id values.TenantCompetenceId,
id values.CompetenceId,
name values.Name,
) *NameUpdated {
return &NameUpdated{
Expand All @@ -15,7 +15,7 @@ func NewNameUpdated(
}

type NameUpdated struct {
id values.TenantCompetenceId
id values.CompetenceId
name values.Name
aggregateVersion uint
}
Expand Down Expand Up @@ -44,7 +44,7 @@ func (e NameUpdated) Export(ex NameUpdatedExporterSetter) {
}

type NameUpdatedExporterSetter interface {
SetId(id values.TenantCompetenceId)
SetId(id values.CompetenceId)
SetName(values.Name)
SetEventType(string)
SetAggregateVersion(uint)
Expand Down
45 changes: 40 additions & 5 deletions grade/internal/domain/competence/values/competence_id.go
Original file line number Diff line number Diff line change
@@ -1,17 +1,52 @@
package values

import (
"github.com/emacsway/grade/grade/internal/domain/seedwork/identity"
"github.com/emacsway/grade/grade/internal/domain/seedwork/specification"
tenant "github.com/emacsway/grade/grade/internal/domain/tenant/values"
)

func NewCompetenceId(value uint) (CompetenceId, error) {
id, err := identity.NewIntIdentity(value)
func NewCompetenceId(tenantId, competenceId uint) (CompetenceId, error) {
tId, err := tenant.NewTenantId(tenantId)
if err != nil {
return CompetenceId{}, err
}
return CompetenceId{&id}, nil
mId, err := NewInternalCompetenceId(competenceId)
if err != nil {
return CompetenceId{}, err
}
return CompetenceId{
tenantId: tId,
competenceId: mId,
}, nil
}

type CompetenceId struct {
*identity.IntIdentity
tenantId tenant.TenantId
competenceId InternalCompetenceId
}

func (cid CompetenceId) TenantId() tenant.TenantId {
return cid.tenantId
}

func (cid CompetenceId) CompetenceId() InternalCompetenceId {
return cid.competenceId
}

func (cid CompetenceId) Equal(other specification.EqualOperand) bool {
otherTyped, ok := other.(CompetenceId)
if !ok {
return false
}
return cid.tenantId.Equal(otherTyped.TenantId()) && cid.competenceId.Equal(otherTyped.CompetenceId())
}

func (cid CompetenceId) Export(ex CompetenceIdExporterSetter) {
ex.SetTenantId(cid.tenantId)
ex.SetCompetenceId(cid.competenceId)
}

type CompetenceIdExporterSetter interface {
SetTenantId(tenant.TenantId)
SetCompetenceId(InternalCompetenceId)
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,22 @@ import (
tenant "github.com/emacsway/grade/grade/internal/domain/tenant/values"
)

func NewTenantCompetenceIdExporter(tenantId, competenceId uint) TenantCompetenceIdExporter {
return TenantCompetenceIdExporter{
func NewCompetenceIdExporter(tenantId, competenceId uint) CompetenceIdExporter {
return CompetenceIdExporter{
TenantId: exporters.UintExporter(tenantId),
CompetenceId: exporters.UintExporter(competenceId),
}
}

type TenantCompetenceIdExporter struct {
type CompetenceIdExporter struct {
TenantId exporters.UintExporter
CompetenceId exporters.UintExporter
}

func (ex *TenantCompetenceIdExporter) SetTenantId(val tenant.TenantId) {
func (ex *CompetenceIdExporter) SetTenantId(val tenant.TenantId) {
val.Export(&ex.TenantId)
}

func (ex *TenantCompetenceIdExporter) SetCompetenceId(val CompetenceId) {
func (ex *CompetenceIdExporter) SetCompetenceId(val InternalCompetenceId) {
val.Export(&ex.CompetenceId)
}
Loading

0 comments on commit 4de0fd0

Please sign in to comment.