Changes between Version 5 and Version 6 of DatabaseProgramming


Ignore:
Timestamp:
06/14/26 00:48:16 (3 days ago)
Author:
231049
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DatabaseProgramming

    v5 v6  
    44
    55
    6 === 1. fn_insert_premium_worker
     6=== 1. trg_insert_premium_worker
    77
    88Овој тригер се активира кога статусот на Payment ќе се промени во "Completed". Во тој момент автоматски се креира нов запис во табелата Premium_Worker, со кој се означува дека работникот од тој момент станува премиум корисник. 
    99
    10 === 2. fn_is_worker_premium(p_worker_id int)
     10=== 2. fn_is_worker_premium(p_worker_id)
    1111
    1212Оваа функција се користи како проверка за тоа дали даден работник моментално има активен премиум статус. Таа може да се повикува од frontend или backend логиката, на пример при прикажување на профил, реклами, premium badge или други содржини поврзани со работникот. Бидејќи оваа проверка би се користела често низ системот, логиката е издвоена во посебна функција со цел да се избегне дуплирање на код.
    1313
    14 === 3. fn_notify_worker_premium_start()
     14=== 3. trg_notify_worker_premium_start
    1515
    1616Овој тригер се активира кога во табелата Premium_Worker ќе се додаде нов запис, односно кога на работникот му започнува премиум претплатата. Во тој момент автоматски се креира запис во табелата Notification, со кој работникот се известува дека неговиот премиум статус е успешно активиран. Во известувањето се вклучени името на избраниот премиум план и датумот до кога истиот важи.
    1717
    18 === 4. prevent_review_without_hire()
     18=== 4. trg_prevent_review_without_hire
    1919
    2020Овој тригер се активира при обид на корисник да додаде рецензија за работник. Неговата цел е да спречи креирање рецензии во случаи кога не постои реална соработка помеѓу корисникот и работникот за таа конкретна специајност која корисникот пробува да ја оцени. Т.е тригерот проверува дали постои пост од дадениот корисник, во кој пост од работникот има статус "Accepted" и специјалноста е таа која се оценува. Доколку таков случај не постои, внесувањето на рецензија се спречува.
    2121
    22 === 5. block_application_to_closed_post()
     22=== 5. trg_block_application_to_closed_post
    2323
    2424Овој тригер се активира при обид за внесување нова апликација за работа. Неговата цел е да спречи работниците да аплицираат на постови кои повеќе не се активни. При извршувањето, тригерот го проверува статусот на постот на кој се однесува апликацијата. Доколку постот не постои, се генерира соодветна грешка. Доколку постот постои, но неговиот статус не е "Active", внесувањето на апликацијата се спречува и се прикажува соодветна порака.
    2525
    26 === 6. prevent_duplicate_application()
     26=== 6. trg_prevent_duplicate_application
    2727
    2828Овој тригер се активира при обид за креирање нова апликација од страна на работник. Неговата цел е да спречи дуплирање на апликации за ист пост од ист работник. При секое внесување, тригерот проверува дали веќе постои апликација за истиот worker_id и post_id која се уште е активна. Доколку таква апликација постои, се генерира грешка и новиот запис се спречува.
    2929
    30 === 7. fn_auto_create_calendar()
     30=== 7. trg_auto_create_calendar
    3131
    3232Бидејќи во системот секој работник си има свој календар (работникот сам одлучува дали ќе го користи или не), при креирање на нов работник за истиот автоматски се креира и календар со овој тригер.
    3333
    3434
    35 === 8. fn_auto_create_worker_notification()
     35=== 8. trg_auto_create_worker_notification
    3636
    3737Овој тригер исто така се однесува на автоматско креирање нотификации, но со фокус на апликациите на мајсторите. Истиот се активира при промена на статусот на апликација.
    3838
    39 === 9. sp_auto_reject_pending_applications()
     39=== 9. sp_auto_reject_pending_applications(p_post_id)
    4040
    4141Оваа процедура служи за автоматско одбивање на сите останати апликации кога одреден пост повеќе не е активен. Најпрво, процедурата го проверува моменталниот статус на постот.  Доколку постот е со статус "Active" го ажурира во статус "Completed".
     
    4545Оваа процедура е потребна во случај кога на одреден пост му се потребни мајстори од повеќе специјалност, а корисникот што го објавил постот одлучува дека за секоја специјалност ќе прифати различни мајстори. Кога корисникот ќе ги прифати сите апликации кои му се од интерес ќе кликне на копче "Одбиј ги останатите апликации и затвори го постот" со што ќе се повика оваа процедура.
    4646
    47 === 10. fn_notify_client_new_application()
     47=== 10. trg_notify_client_new_application
    4848
    4949Овој тригер исто така се однесува на автоматско креирање нотификации, но со фокус на постовите на корисниците. Истиот се активира кога на даден пост ќе пристигне нова апликација.