<commit_before>package models

import (
	"fmt"
	"time"
)

// Title título de cobrança de entrada
type Title struct {
	CreateDate     time.Time
	ExpireDateTime time.Time
	ExpireDate     string
	AmountInCents  uint64
	OurNumber      uint
}

// NewTitle instancia um novo título
func (t *Title) NewTitle(expDate string, amountInCents uint64, ourNumber uint) error {
	eDate, err := parseDate(expDate)
	if err != nil {
		return NewErrorResponse("MPExpireDate", fmt.Sprintf("Data em um formato inválido, esperamos AAAA-MM-DD e recebemos %s", expDate))
	}

	cDate, _ := parseDate(time.Now().Format("2006-01-02"))

	t.AmountInCents = amountInCents
	t.ExpireDateTime = eDate
	t.OurNumber = ourNumber
	t.CreateDate = cDate
	if t.CreateDate.After(t.ExpireDateTime) {
		return NewErrorResponse("MPExpireDate", "Data de expiração não pode ser menor que a data de hoje")
	}

	return nil
}

//IsExpireDateValid retorna um erro se a data de expiração for inválida
func (t *Title) IsExpireDateValid() error {
	d, err := parseDate(t.ExpireDate)
	if err != nil {
		return NewErrorResponse("MPExpireDate", fmt.Sprintf("Data em um formato inválido, esperamos AAAA-MM-DD e recebemos %s", t.ExpireDate))
	}
	n, _ := parseDate(time.Now().Format("2006-01-02"))<commit_msg>:heavy_plus_sign: Adiciona novo campo de instruções e :fire: remove método que não era usado<commit_after>package models

import (
	"fmt"
	"time"
)

// Title título de cobrança de entrada
type Title struct {
	CreateDate     time.Time
	ExpireDateTime time.Time
	ExpireDate     string
	AmountInCents  uint64
	OurNumber      uint
	Instructions   string
}

//ValidateInstructionsLength valida se texto das instruções possui quantidade de caracteres corretos
func (t Title) ValidateInstructionsLength() error {
	if len(t.Instructions) > 220 {
		return NewErrorResponse("MPInstructions", "Instruções não podem passar de 220 caracteres")
	}
	return nil
}

//IsExpireDateValid retorna um erro se a data de expiração for inválida
func (t *Title) IsExpireDateValid() error {
	d, err := parseDate(t.ExpireDate)
	if err != nil {
		return NewErrorResponse("MPExpireDate", fmt.Sprintf("Data em um formato inválido, esperamos AAAA-MM-DD e recebemos %s", t.ExpireDate))
	}
	n, _ := parseDate(time.Now().Format("2006-01-02"))
{'fraction_non_alphanumeric': 0.09977827050997783, 'fraction_numerical': 0.015964523281596452, 'mean_word_length': 4.515892420537897, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 4, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5747645', 'n_tokens_mistral': 809, 'n_tokens_neox': 781, 'n_words': 228}