package main

import (
	"fmt"
)

type Log struct {
	msg string
}

type Customer struct {
	Name string
	log  *Log
}

func main() {
	// c := new(Customer)
	// c.Name = "Barak Obama"
	// c.log = new(Log)
	// c.log.msg = "1 - Yes we can!"
	// shorter:
	c := &Customer{"Barak Obama", &Log{"1 - Yes we can!"}}
	// fmt.Println(c)   // &{Barak Obama 1 - Yes we can!}
	c.Log().Add("2 - After me the world will be a better place!")
	//fmt.Println(c.log)
	fmt.Println(c.Log())
}

func (l *Log) Add(s string) {
	l.msg += "\n" + s
}

func (l *Log) String() string {
	return l.msg
}

func (c *Customer) Log() *Log {
	return c.log
}

/* Output:
1 - Yes we can!
2 - After me the world will be a better place!
*/
