<?php

namespace App\Models;

use App\Libs\Database\Eloquent\ContentTypeModel;
use App\Models\GenericBackoffice\Traits\LanguageSupportTrait;
use App\Models\Member;

class FormField extends ContentTypeModel
{
    use LanguageSupportTrait;

    protected $hidden = ['languages', "websites"];
    protected $with = ['languages', "websites"];

    protected $fillable = [
        'form_section_id',
        'field_type',
        'is_mandatory',
        'layout',
        'conditional_field_dependent_id',
    ];

    protected $casts = [
        'is_mandatory' => 'boolean'
    ];

    public function fieldOptions()
    {
        return $this->hasMany(FieldOption::class);
    }

    public function getMembers()
    {
        return Member::full()
            ->select('members.*', 'member_languages.*')
            ->where('status', 'published')
            ->orderBy('member_languages.title', 'asc')
            ->get();
    }
}
