package domain

import (
	"time"

	"github.com/google/uuid"
)

// Company represents a company in the system
type Company struct {
	ID              uuid.UUID  `json:"id" db:"id"`
	CNPJ            string     `json:"cnpj" db:"cnpj"`
	RazaoSocial     string     `json:"razao_social" db:"razao_social"`
	NomeFantasia    string     `json:"nome_fantasia" db:"nome_fantasia"`
	Email           string     `json:"email" db:"email"`
	Telefone        string     `json:"telefone" db:"telefone"`
	Status          string     `json:"status" db:"status"`
	TenantID        uuid.UUID  `json:"tenant_id" db:"tenant_id"`
	CreatedByUserID *uuid.UUID `json:"created_by_user_id,omitempty" db:"created_by_user_id"`
	CreatedAt       time.Time  `json:"created_at" db:"created_at"`
	UpdatedAt       time.Time  `json:"updated_at" db:"updated_at"`
}

// CreateCompanyRequest represents the request to create a new company
type CreateCompanyRequest struct {
	CNPJ         string `json:"cnpj"`
	RazaoSocial  string `json:"razao_social"`
	NomeFantasia string `json:"nome_fantasia"`
	Email        string `json:"email"`
	Telefone     string `json:"telefone"`
}
