from rest_framework import serializers
from ..models import Account, Transaction

class AccountSerializer(serializers.ModelSerializer):
    owner_email = serializers.ReadOnlyField(source='owner.email')
    account_manager_email = serializers.ReadOnlyField(source='account_manager.email')

    class Meta:
        model = Account
        fields = [
            'id', 'owner', 'owner_email', 'account_manager', 'account_manager_email', 'name', 'type',
            'balance', 'iban', 'account_number', 'created_at', 'updated_at'
        ]
        read_only_fields = ['id', 'owner_email', 'account_manager_email', 'balance', 'created_at', 'updated_at']

class TransactionSerializer(serializers.ModelSerializer):
    from_account_name = serializers.ReadOnlyField(source='from_account.name')
    to_account_name = serializers.ReadOnlyField(source='to_account.name')

    class Meta:
        model = Transaction
        fields = [
            'id', 'from_account', 'from_account_name', 'to_account', 'to_account_name',
            'amount', 'description', 'transaction_date', 'category', 'created_at', 'updated_at'
        ]
        read_only_fields = ['id', 'from_account_name', 'to_account_name', 'transaction_date', 'created_at', 'updated_at']
