Muito interessante! Só achei estranho a empresa ter uma FK para usuário. Não seria o contrário? O usuário ter uma FK para empresa? Do jeito que você fez, relação tá tipo 1 usuário para N empresas. Não sei se essa é realmente a regra de negócio, aí você quem diz kkkk Mas achei incomum...
Na verdade, tu comentou que a relação é 1 para 1, se for isso mesmo então poderia ter usado OneToOneField mesmo, igual vc fez com o usuário, essencialmente é uma FK tbm só que bloqueia a relação em 1 para 1, então mesmo que você tente criar a um usuário com duas empresas ou vice-versa o banco de dados bloqueia.
Além disso, acho que é possível fazer melhor ainda... Faz um tempo que brinquei com fastapi, hoje mexo mais com django, mas acredito que dá pra usar o schema do usuário como tipo pro schema de empresa, fazendo um aninhamento do usuário na empresa e a resposta ficaria:
[
{
"cnpj": "48.561.237/0001-78",
"razao_social": "Campos",
"logo": "https://picsum.photos/664/320",
"usuario": {
"id": "95c1c83c-1916-426e-b082-19156735c2bf",
"nome": "Pereira - ME",
"email": "email1@email.com.br",
"telefone": "0500 037 7420",
"endereco": "Feira Moreira, Moreira Grande / PB"
}
}
]
Em DRF fazemos facinho com serializers, deve haver uma forma fácil de fazer isso! Acredito que ficaria uma solução mais limpa, não sei se faz sentido pra você...
Obrigado pelas dicas, no caso a empresa tem um fk para usuário, por que tenho outro models de cliente que também aponta para usuário, assim não teria no models de usuário um FK para empresa e outro para cliente.