Documentation ¶
Overview ¶
models/setupdb.go
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AtualizarClienteDTO ¶
type AtualizarClienteDTO struct { // ID uuid.UUID `json:"id"` Nome string `json:"nome" validate:"omitempty,min=3,max=50"` Email string `json:"email" validate:"omitempty,email"` SetorLotacao string `json:"setor_lotacao" validate:"omitempty,min=1,max=50"` TotalTickets int `json:"total_tickets"` Senha string `json:"senha" validate:"omitempty,min=6,max=32"` }
type AtualizarTecnicoDTO ¶
type AtualizarTecnicoDTO struct { // ID uuid.UUID `json:"id"` Nome string `json:"nome" validate:"omitempty,min=3,max=50"` Email string `json:"email" validate:"omitempty,email"` TicketsSolucionados int `json:"tickets_solucionados"` Nivel NivelPrivilegio `json:"nivel" validate:"omitempty,oneof=administrador normal"` SetorLotacao string `json:"setor_lotacao" validate:"omitempty,min=1,max=50"` Senha string `json:"senha" validate:"omitempty,min=6,max=32"` }
type AtualizarTicketDTO ¶
type AtualizarTicketDTO struct { // ID uuid.UUID `json:"id"` Titulo string `json:"titulo" validate:"omitempty,min=2,max=50"` Descricao string `json:"descricao" validate:"omitempty,min=6,max=1000"` Status Status `json:"status" validate:"omitempty,oneof=aberto atribuido solucionado fechado"` // DataAbertura time.Time `json:"data_abertura"` DataFechamento *time.Time `json:"data_fechamento"` TecnicoID uuid.UUID `json:"tecnico_id" validate:"omitempty,uuid"` }
type Cliente ¶
type Cliente struct { ID uuid.UUID `json:"id" gorm:"primaryKey"` Nome string `json:"nome"` Email string `json:"email" gorm:"unique"` Senha string `json:"-"` SetorLotacao string `json:"setor_lotacao"` TotalTickets int `json:"total_tickets"` Tickets []*Ticket `json:"tickets,omitempty" gorm:"foreignKey:ClienteID"` }
*Cliente representa um *cliente usuário do sistema.
func NovoCliente ¶
NovoCliente cria uma nova instância de Cliente.
func (*Cliente) AdicionarTotalTickets ¶
type ClienteDTO ¶
type ClienteDTO struct { ID uuid.UUID `json:"id"` Nome string `json:"nome" validate:"required,min=3,max=50"` Email string `json:"email" validate:"required,email"` SetorLotacao string `json:"setor_lotacao" validate:"omitempty,min=1,max=50"` TotalTickets int `json:"total_tickets"` Senha string `json:"senha" validate:"required,min=6,max=32"` }
ClienteDTO representa a estrutura de dados para transferência de dados relacionados a clientes.
type NivelPrivilegio ¶
type NivelPrivilegio string
NivelPrivilegio representa os níveis de privilégio para um técnico.
const ( Administrador NivelPrivilegio = "administrador" Normal NivelPrivilegio = "normal" )
type Tecnico ¶
type Tecnico struct { ID uuid.UUID `json:"id" gorm:"primaryKey"` Nome string `json:"nome"` TicketsSolucionados int `json:"tickets_solucionados"` Nivel NivelPrivilegio `json:"nivel"` SetorLotacao string `json:"setor_lotacao"` Email string `json:"email" gorm:"unique"` Senha string `json:"-"` Tickets []*Ticket `json:"tickets,omitempty" gorm:"foreignKey:TecnicoID"` }
Tecnico representa um técnico responsável por resolver os tickets.
func NovoTecnico ¶
func NovoTecnico(nome, email, senha string, nivel NivelPrivilegio) *Tecnico
NovoTecnico é um construtor para criar uma nova instância de Tecnico.
func (*Tecnico) AdicionarTicketsSolucionados ¶
type TecnicoDTO ¶
type TecnicoDTO struct { ID uuid.UUID `json:"id"` Nome string `json:"nome" validate:"required,min=3,max=50"` Email string `json:"email" validate:"required,email"` TicketsSolucionados int `json:"tickets_solucionados"` Nivel NivelPrivilegio `json:"nivel" validate:"required,oneof=administrador normal"` // SetorLotacao string `json:"setor_lotacao" validate:"required,min=1,max=50"` Senha string `json:"senha" validate:"required,min=6,max=32"` }
TecnicoDTO representa a estrutura de dados para transferência de dados relacionados a técnicos.
type Ticket ¶
type Ticket struct { ID uuid.UUID `json:"id" gorm:"primaryKey"` Titulo string `json:"titulo"` Descricao string `json:"descricao"` Status Status `json:"status"` DataAbertura time.Time `json:"data_abertura"` DataFechamento *time.Time `json:"data_fechamento,omitempty"` Tecnico *Tecnico `json:"tecnico,omitempty" gorm:"foreignKey:TecnicoID"` Cliente *Cliente `json:"cliente,omitempty" gorm:"foreignKey:ClienteID"` TecnicoID *uuid.UUID `json:"-" gorm:"type:uuid;index:idx_tecnico_id,tecnico_id"` ClienteID uuid.UUID `json:"-" gorm:"type:uuid;index:idx_cliente_id,cliente_id"` }
Ticket representa um ticket de suporte.
func NovoTicket ¶
NovoTicket é um construtor para criar uma nova instância de Ticket.
func (*Ticket) AtribuirTecnico ¶
type TicketDTO ¶
type TicketDTO struct { ID uuid.UUID `json:"id"` Titulo string `json:"titulo" validate:"required,min=2,max=50"` Descricao string `json:"descricao" validate:"required,min=6,max=1000"` Status Status `json:"status" validade:"required,oneof=aberto atribuido solucionado fechado"` DataAbertura time.Time `json:"data_abertura"` DataFechamento *time.Time `json:"data_fechamento"` TecnicoID uuid.UUID `json:"tecnico_id" validate:"uuid"` ClienteID uuid.UUID `json:"cliente_id" validate:"uuid"` }
TicketDTO representa a estrutura de dados para transferência de dados relacionados a tickets.