models

package
v0.0.0-...-635dec8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 27, 2023 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

models/setupdb.go

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SetupDB

func SetupDB() (*gorm.DB, error)

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

func NovoCliente(nome, email, senha, setorLotacao string) *Cliente

NovoCliente cria uma nova instância de Cliente.

func (*Cliente) AdicionarTotalTickets

func (c *Cliente) AdicionarTotalTickets() int

func (*Cliente) ToString

func (c *Cliente) ToString() string

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 Status

type Status string

Status representa os estados de um ticket.

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

func (t *Tecnico) AdicionarTicketsSolucionados() int

func (*Tecnico) ToString

func (t *Tecnico) ToString() string

ToString retorna uma string formatada com informações sobre o técnico.

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

func NovoTicket(titulo, descricao string, responsavel *Tecnico, cliente *Cliente) *Ticket

NovoTicket é um construtor para criar uma nova instância de Ticket.

func (*Ticket) AtribuirTecnico

func (t *Ticket) AtribuirTecnico(tecnico *Tecnico)

func (*Ticket) BeforeCreate

func (t *Ticket) BeforeCreate(tx *gorm.DB) (err error)

func (*Ticket) ToString

func (t *Ticket) ToString() string

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.

type Usuario

type Usuario interface {
	GetID() uuid.UUID
	GetNome() string
	GetEmail() string
	GetSetorLotacao() string
	ToString() string
}

Usuario é uma interface para representar usuários.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL