<?php
namespace App\Entity;
use App\Repository\RansomwareRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use App\Traits\DateTimeTrait;
use Overblog\GraphQLBundle\Annotation\Field;
use App\Attribute\Searchable;
#[ORM\Entity(repositoryClass: RansomwareRepository::class)]
#[ORM\Table(name: "ransomware")]
class Ransomware
{
use DateTimeTrait;
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
#[Field(name: "id", type: "int")]
private ?int $id = null;
#[ORM\Column]
#[Field(name: "detected_at", type: "string")]
private ?\DateTimeImmutable $detectedAt = null;
#[ORM\Column(type: Types::TEXT)]
#[Field(name: "location", type: "string")]
private ?string $location = null;
#[ORM\Column(type: Types::TEXT)]
#[Field(name: "fragment", type: "string")]
private ?string $fragment = null;
#[ORM\Column(type: 'string', length: 255)]
#[Field(name: "network", type: "string")]
private ?string $network = null;
#[ORM\Column(type: Types::TEXT)]
#[Field(name: "body", type: "string")]
#[Searchable(name: 'body')]
private ?string $body = null;
#[ORM\Column(type: Types::TEXT)]
#[Field(name: "title", type: "string")]
#[Searchable(name: 'title')]
private ?string $title = null;
#[ORM\Column(type: Types::TEXT)]
#[Field(name: "uri", type: "string")]
private ?string $uri = null;
#[ORM\Column(type: Types::TEXT)]
#[Field(name: "url", type: "string")]
#[Searchable(name: 'url')]
private ?string $url = null;
#[ORM\Column(type: "integer", name: "file_size")]
#[Field(name: "file_size", type: "int")]
private ?int $fileSize = null;
#[ORM\Column(type: 'string', length: 255, name: "domain_name")]
#[Field(name: "domain_name", type: "string")]
#[Searchable(name: 'domain_name')]
private ?string $domainName = null;
#[ORM\Column(type: 'string', length: 255)]
#[Field(name: "ip", type: "string")]
#[Searchable(name: 'ip')]
private ?string $ip = null;
#[ORM\Column(type: Types::TEXT)]
#[Field(name: "snippet", type: "string")]
private ?string $snippet = null;
#[ORM\Column(type: 'string', unique: true, name: "document_id")]
#[Field(name: "document_id", type: "string")]
private ?string $documentID = null;
#[ORM\Column(type: Types::JSON)]
#[Field(name: "languages", type: "json")]
private array $languages = [];
#[ORM\Column(type: Types::JSON)]
#[Field(name: "emails", type: "json")]
private array $emails = [];
#[ORM\Column(type: Types::JSON)]
#[Field(name: "websites", type: "json")]
private array $websites = [];
#[ORM\Column(type: Types::JSON)]
#[Field(name: "groups", type: "json")]
private array $groups = [];
#[ORM\Column(type: Types::JSON)]
#[Field(name: "ssns", type: "json")]
private array $ssns = [];
#[ORM\Column(type: Types::JSON)]
#[Field(name: "ccns", type: "json")]
private array $ccns = [];
#[ORM\Column(type: Types::JSON)]
#[Field(name: "ips", type: "json")]
private array $ips = [];
#[ORM\Column(type: Types::JSON)]
#[Field(name: "cryptos", type: "json")]
private array $cryptos = [];
#[ORM\Column(type: Types::JSON)]
#[Field(name: "headers", type: "json")]
private array $headers = [];
#[ORM\Column(type: 'string', length: 255)]
#[Field(name: "name", type: "string")]
private ?string $name = null;
#[ORM\Column(type: 'string', length: 255)]
#[Field(name: "host", type: "string")]
private ?string $host = null;
#[ORM\Column(type: Types::JSON)]
#[Field(name: "actors", type: "[String]")]
private array $actors = [];
#[ORM\Column(type: Types::JSON)]
#[Field(name: "associations", type: "[String]")]
private array $associations = [];
#[ORM\Column(type: Types::JSON)]
#[Field(name: "downloadLocations", type: "[String]")]
private array $downloadLocations = [];
#[ORM\Column(type: Types::TEXT)]
#[Field(name: "filepath", type: "string")]
private ?string $filepath = null;
#[ORM\Column(type: 'string', length: 255)]
#[Field(name: "filename", type: "string")]
private ?string $filename = null;
#[ORM\ManyToOne(targetEntity: Domain::class, inversedBy: "ransomwares")]
#[ORM\JoinColumn(name: "domain_id", referencedColumnName: "id", nullable: false)]
#[Field(name: "domain")]
private ?Domain $domain = null;
public function getId(): ?int
{
return $this->id;
}
public function getDetectedAt(): ?\DateTimeImmutable
{
return $this->detectedAt;
}
public function setDetectedAt(\DateTimeImmutable $detectedAt): static
{
$this->detectedAt = $detectedAt;
return $this;
}
public function getLocation(): ?string
{
return $this->location;
}
public function setLocation(string $location): static
{
$this->location = $location;
return $this;
}
public function getFragment(): ?string
{
return $this->fragment;
}
public function setFragment(string $fragment): static
{
$this->fragment = $fragment;
return $this;
}
public function getNetwork(): ?string
{
return $this->network;
}
public function setNetwork(string $network): static
{
$this->network = $network;
return $this;
}
public function getBody(): ?string
{
return $this->body;
}
public function setBody(string $body): static
{
$this->body = $body;
return $this;
}
public function getTitle(): ?string
{
return $this->title;
}
public function setTitle(string $title): static
{
$this->title = $title;
return $this;
}
public function getUri(): ?string
{
return $this->uri;
}
public function setUri(string $uri): static
{
$this->uri = $uri;
return $this;
}
public function getUrl(): ?string
{
return $this->url;
}
public function setUrl(string $url): static
{
$this->url = $url;
return $this;
}
public function getFileSize(): ?int
{
return $this->fileSize;
}
public function setFileSize(int $fileSize): static
{
$this->fileSize = $fileSize;
return $this;
}
public function getDomainName(): ?string
{
return $this->domainName;
}
public function setDomainName(string $domainName): static
{
$this->domainName = $domainName;
return $this;
}
public function getIp(): ?string
{
return $this->ip;
}
public function setIp(string $ip): static
{
$this->ip = $ip;
return $this;
}
public function getSnippet(): ?string
{
return $this->snippet;
}
public function setSnippet(string $snippet): static
{
$this->snippet = $snippet;
return $this;
}
public function getDocumentID(): ?string
{
return $this->documentID;
}
public function setDocumentID(string $documentID): static
{
$this->documentID = $documentID;
return $this;
}
public function getLanguages(): array
{
return $this->languages;
}
public function setLanguages(array $languages): static
{
$this->languages = $languages;
return $this;
}
public function getWebsites(): array
{
return $this->websites;
}
public function setWebsites(array $websites): static
{
$this->websites = $websites;
return $this;
}
public function getGroups(): array
{
return $this->groups;
}
public function setGroups(array $groups): static
{
$this->groups = $groups;
return $this;
}
public function getEmails(): array
{
return $this->emails;
}
public function setEmails(array $emails): static
{
$this->emails = $emails;
return $this;
}
public function getSsns(): array
{
return $this->ssns;
}
public function setSsns(array $ssns): static
{
$this->ssns = $ssns;
return $this;
}
public function getCcns(): array
{
return $this->ccns;
}
public function setCcns(array $ccns): static
{
$this->ccns = $ccns;
return $this;
}
public function getIps(): array
{
return $this->ips;
}
public function setIps(array $ips): static
{
$this->ips = $ips;
return $this;
}
public function getCryptos(): array
{
return $this->cryptos;
}
public function setCryptos(array $cryptos): static
{
$this->cryptos = $cryptos;
return $this;
}
public function getHeaders(): array
{
return $this->headers;
}
public function setHeaders(array $headers): static
{
$this->headers = $headers;
return $this;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): static
{
$this->name = $name;
return $this;
}
public function getHost(): ?string
{
return $this->host;
}
public function setHost(string $host): static
{
$this->host = $host;
return $this;
}
public function getActors(): array
{
return $this->actors;
}
public function setActors(array $actors): static
{
$this->actors = $actors;
return $this;
}
public function getAssociations(): array
{
return $this->associations;
}
public function setAssociations(array $associations): static
{
$this->associations = $associations;
return $this;
}
public function getDownloadLocations(): array
{
return $this->downloadLocations;
}
public function setDownloadLocations(array $downloadLocations): static
{
$this->downloadLocations = $downloadLocations;
return $this;
}
public function getFilepath(): ?string
{
return $this->filepath;
}
public function setFilepath(string $filepath): static
{
$this->filepath = $filepath;
return $this;
}
public function getFilename(): ?string
{
return $this->filename;
}
public function setFilename(string $filename): static
{
$this->filename = $filename;
return $this;
}
public function getDomain(): ?Domain
{
return $this->domain;
}
public function setDomain(?Domain $domain): static
{
$this->domain = $domain;
return $this;
}
}