---
# System prepended metadata

title: Testni zadatak

---

# Testni zadatak
Napraviti backend/API za aplikaciju.
Aplikacija se sastoji iz 3 modela i 15(+2 bonus) endpointa.
Koristiti .NET CORE 2.2.
Za čuvanje podataka koristit MSSQL.



## Modeli

#### Korisnik/User
* Id
* Ime 
* Prezime
* Email (bonus)
* Telefon
* Datum rodjenja
* Grad
* Drzava
* Trenutno stanje racuna(bonus)

#### Artikal/Article
* Id
* Naziv Artikla
* Vlasnik
* Cijena
* Kategorija
* Kratki opis
* Puni opis
* Datum objave(bonus)

#### Kategorija/Category
* Id
* Naziv

## Endpointi

### Users

POST /users/
GET /users/
GET /users/{id}
DELETE /users/{id}
PATCH /users/{id}

### Articles

POST /articles/
GET /articles/
GET /articles/{id}
DELETE /articles/{id}
PATCH /articles/{id}

(BONUS) POST /articles/{id}

### Categories

POST /categories/
GET /categories/
GET /categories/{id}
DELETE /categories/{id}
PATCH /categories/{id}

(BONUS) GET /categories/{id}/articles

## Bonus

Dodatni bonus je korištenje async/await.
Dodatni bonus je korištenje GIT-a.

### Modeli
Polje email u kreaciji korisnika treba biti unikatno, odnosno jedan korisnik jedan email.
Postaviti polje datum objave da na vrijeme kreiranja artikla.
Polje trenutno stanje računa treba da se mijenja prilikom kupovine/prodaje artikala.Svaki korisnik u početku treba da ima 1000 jedinica za trgovanje(novca).


### Endpoints
(Bonus)
Koristiti Status kodove:
1. 200 - za uspijesno izvrsenu operaciju GET
2. 201 - za uspijesno izvrsenu operaciju POST
3. 204 - za uspjesno izvrsenu operaciju koja ne treba da vrati vrijednost
4. 400 - za neizvrsenu opraciju(Greska)
5. 404 - u slucaju da ne postoji odredjeni rezultat

#### Articles
Bonus endpoint treba da promjeni vlasnika artikla nakon što je kupljen , takodje da oduzme vrijednost cijene artikla kupca i proslije vrijednost prodavcu.

#### Categories
Bonus endpoint u kategorijama treba da prikaze artikle jedne kategorije.


## Napomena

Sav napisan kod trebate biti u mogucnosti da objasnite.