<?php

namespace SilverStripe\FrameworkTest\Model;





use SilverStripe\ORM\DataObject;
use SilverStripe\ORM\DB;
use SilverStripe\Forms\NumericField;
use SilverStripe\Forms\TextField;




/**
 * Description of Employees
 *
 */
class Employee extends DataObject
{

    private static $db = array(
        'Name' => 'Varchar',
        'Biography' => 'HTMLText'
    );

    private static $has_one = array(
        'Company' => 'SilverStripe\\FrameworkTest\\Model\\Company',
        'ProfileImage' => 'SilverStripe\\Assets\\Image'
    );

    private static $belongs_many_many  = array(
        'PastCompanies' => 'SilverStripe\\FrameworkTest\\Model\\Company'
    );

    private static $table_name = 'Employee';

    public function getCMSFields()
    {
        // Use basic scaffolder (no tabs)
        $fields = $this->scaffoldFormFields();
        $fields->push(new NumericField('ManyMany[YearStart]', 'Year started (3.1, many-many only)'));
        $fields->push(new TextField('ManyMany[Role]', 'Role (3.1, many-many only)'));
        return $fields;
    }

    public function requireDefaultRecords()
    {
        parent::requireDefaultRecords();
        $employeeSet = DataObject::get('SilverStripe\\FrameworkTest\\Model\\Employee');
        foreach ($employeeSet as $employee) {
            $employee->delete();
        }

        foreach ($this->data() as $employeeName) {
            $employee = new Employee();
            $employee->Name = $employeeName;
            $employee->write();
        }
        DB::alteration_message("Added default records to Employee table", "created");
    }

    public function validate()
    {
        $result = parent::validate();
        if (!$this->Name) {
            $result->error('"Name" can\'t be blank');
        }
        return $result;
    }

    /**
     * Contains test data
     *
     * @return array
     */
    public function data()
    {
        return array(
            'Hayley', 'Octavius', 'Walker', 'Gary','Elton','Janna','Ursa','Lars','Moses','Lareina',
            'Elmo','Cara','Shea','Duncan','Velma','Acton','Galena','Heidi','Troy','Elliott','Cara',
            'Whitney','Summer','Olga','Tatum','Zeph','Jared','Hilda','Quinlan','Chaim','Xenos',
            'Cara','Tatiana','Tyrone','Juliet','Chester','Hannah','Imani','Quinn','Ariel','Abel',
            'Aretha','Courtney ','Shellie','Garrett','Camilla','Simon','Mohammad','Kirby','Rae',
            'Xena','Noel','Omar','Shannon','Iola','Maia','Serina','Taylor','Alice','Lucy','Austin',
            'Abel','Quinn','Yetta','Ulysses','Donovan','Castor','Emmanuel','Nero','Virginia',
            'Gregory','Neville','Abel','Len','Knox','Gavin','Pascale','Hyatt','Alden','Emerald',
            'Cherokee','Zeph','Adam','Uma','Serena','Isabelle','Kieran','Moses','Gay','Lavinia',
            'Elvis','Illana','Lee','Ariana','Hilel','Juliet','Gage','Larissa','Richard','Allen'
        );
    }
}