From 1d421a1e13962bfbce2501bec8228ee1f15f473f Mon Sep 17 00:00:00 2001
From: Martin Schmollinger <martin.schmollinger@reutlingen-university.de>
Date: Mon, 17 Apr 2023 14:50:20 +0200
Subject: [PATCH] Added domain types

---
 src/myaktion/main.go           | 34 ++++++++++++++++++++++++++++++++++
 src/myaktion/model/account.go  |  7 +++++++
 src/myaktion/model/campaign.go | 11 +++++++++++
 src/myaktion/model/donation.go | 16 ++++++++++++++++
 4 files changed, 68 insertions(+)
 create mode 100644 src/myaktion/main.go
 create mode 100644 src/myaktion/model/account.go
 create mode 100644 src/myaktion/model/campaign.go
 create mode 100644 src/myaktion/model/donation.go

diff --git a/src/myaktion/main.go b/src/myaktion/main.go
new file mode 100644
index 0000000..3996468
--- /dev/null
+++ b/src/myaktion/main.go
@@ -0,0 +1,34 @@
+package main
+
+import (
+	"fmt"
+
+	"gitlab.reutlingen-university.de/go-exercises/myaktion-go/src/myaktion/model"
+)
+
+func main() {
+	c := model.Campaign{
+		Name:            "Kinder helfen",
+		OrganizerName:   "Hans Schmidt",
+		TargetAmount:    10000.0,
+		DonationMinimum: 10.0,
+		Account: model.Account{
+			Name:     "Kinder helfen",
+			BankName: "Raiffeisen",
+			Number:   "1234567890",
+		},
+	}
+	c.Donations = append(c.Donations, model.Donation{
+		Amount:           100.0,
+		DonorName:        "Hans Muster",
+		ReceiptRequested: true,
+		Status:           model.IN_PROCESS,
+		Account: model.Account{
+			Name:     "Hans Muster",
+			BankName: "Raiffeisen",
+			Number:   "1234567890",
+		},
+	})
+	fmt.Printf("%+v\n", c)
+
+}
diff --git a/src/myaktion/model/account.go b/src/myaktion/model/account.go
new file mode 100644
index 0000000..d2e74b4
--- /dev/null
+++ b/src/myaktion/model/account.go
@@ -0,0 +1,7 @@
+package model
+
+type Account struct {
+	Name     string
+	BankName string
+	Number   string
+}
diff --git a/src/myaktion/model/campaign.go b/src/myaktion/model/campaign.go
new file mode 100644
index 0000000..3074a37
--- /dev/null
+++ b/src/myaktion/model/campaign.go
@@ -0,0 +1,11 @@
+package model
+
+type Campaign struct {
+	Name               string
+	OrganizerName      string
+	TargetAmount       float64
+	DonationMinimum    float64
+	AmountDonatedSoFar float64
+	Donations          []Donation
+	Account            Account
+}
diff --git a/src/myaktion/model/donation.go b/src/myaktion/model/donation.go
new file mode 100644
index 0000000..4bf6af1
--- /dev/null
+++ b/src/myaktion/model/donation.go
@@ -0,0 +1,16 @@
+package model
+
+type Status string
+
+const (
+	TRANSFERRED Status = "TRANSFERRED"
+	IN_PROCESS  Status = "IN_PROCESS"
+)
+
+type Donation struct {
+	Amount           float64
+	DonorName        string
+	ReceiptRequested bool
+	Account          Account
+	Status           Status
+}
-- 
GitLab